Создание учетной записи-посредника веб-службы
Клиент и веб-служба могут обмениваться данными с помощью сообщений SOAP, в который входные и выходные параметры инкапсулируются в формате XML. Класс-посредник сопоставляет параметры с XML-элементами, а затем отправляет сообщения SOAP по сети. Таким образом класс-посредник устраняет необходимость связываться с веб-службой на уровне SOAP и позволяет вызывать методы веб-службы в любой среде разработки, которая поддерживает протокол SOAP и прокси для веб-служб.
Добавить класс прокси-класс в проект разработки, использующий Microsoft .NET Framework, можно двумя способами: с помощью средства WSDL в .NET Framework и путем добавления веб-ссылки в Microsoft Visual Studio. В следующих подразделах эта тема описана более подробно.
Добавление класса-посредника с помощью программы WSDL
Пакет SDK для .NET Framework включает программу Wsdl.exe для работы с языком WSDL, которая позволяет создать прокси-класс веб-службы для использования в среде разработки .NET Framework. Средство WSDL — это самый распространенный способ создания прокси-класса клиента на языках, поддерживающих веб-службы (сейчас это C# и Microsoft Visual Basic).
Добавление прокси-класса в проект с помощью Wsdl.exe
Запустите программу Wsdl.exe из командной строки, чтобы создать класс-посредник, указав (по крайней мере) URL-адрес для веб-службы сервера отчетов.
Например, следующая инструкция командной строки указывает URL-адрес для конечной точки управления в веб-службе сервера отчетов:
wsdl /language:CS /n:"Microsoft.SqlServer.ReportingServices2010" https://<Server Name>/reportserver/reportservice2010.asmx?wsdl
Программа WSDL принимает ряд аргументов командной строки для создания прокси-класса. В предыдущем примере для использования в классе-посреднике указывается язык C# и рекомендуемое пространство имен (чтобы предотвратить конфликт имен в случае использования нескольких конечных точек веб-службы), а затем создается файл кода C# с именем ReportingService2010.cs. Если в примере указать язык Visual Basic, будет создан прокси-файл с именем ReportingService2010.vb. Этот файл создается в каталоге, из которого запущена команда.
Скомпилируйте класс-посредник в файл сборки (с расширением DLL) и создайте в проекте ссылку на сборку или добавьте класс в качестве элемента проекта.
Примечание
Если класс-посредник добавляется в проект вручную, необходимо добавить ссылку на библиотеку System.Web.Services.dll. Если прокси-класс добавляется с помощью веб-ссылки в Visual Studio .NET, то ссылка создается автоматически. Дополнительные сведения см. в подразделе «Добавление класса-посредника с помощью веб-ссылки в Visual Studio» далее в этом разделе.
После добавления класса-посредника в качестве элемента проекта в обозревателе решений появляется соответствующий файл.
Чтобы вызвать службу программным образом, создайте экземпляр класса-посредника.
В следующем примере кода показан синтаксис для создания в проекте экземпляра класса-посредника ReportingService2010.
Dim service As New ReportingService2010()
ReportingService2010 service = new ReportingService2010();
Дополнительные сведения о программе Wsdl.exe, включая полный синтаксис, см. в разделе «Программа WSDL» документации по пакету SDK для .NET Framework. Полное описание прокси для веб-служб см. в разделе «Создание прокси для веб-служб с поддержкой XML» документации по пакету SDK для .NET Framework.
Добавление учетной записи-посредника с помощью веб-ссылки в Visual Studio
Веб-ссылка позволяет проекту использовать одну или несколько веб-служб. Среда Visual Studio позволяет пользователям добавлять в проекты ссылки на веб-службы с помощью нескольких простых действий.
Добавление веб-ссылки в проект
В обозревателе решений выберите проект, который будет использовать веб-службу.
В меню Проект выберите пункт Добавить веб-ссылку.
Откроется диалоговое окно Добавление веб-ссылки.
В поле URL-адрес введите полный путь к веб-службе сервера отчетов.
Упрощенный URL-адрес конечной точки выполнения отчета для веб-службы сервера отчетов может иметь следующий вид:
https://<Server Name>/reportserver/reportexecution2005.asmx
URL-адрес содержит домен, в котором развернута веб-служба сервера отчетов, имя папки, содержащей службу, и имя файла обнаружения для службы. Полное описание различных элементов URL-адреса см. в разделе Доступ к API-интерфейсу SOAP.
Описание методов и свойств, предоставляемых веб-службой, появляется слева в панели браузера.
Примечание
Дополнительные сведения об элементах, связанных с веб-службой сервера отчетов, см. в разделе Методы веб-службы сервера отчетов.
Убедитесь, что проект может использовать веб-службу сервера отчетов, а также в наличии необходимых разрешений для доступа к серверу отчетов.
В поле Имя веб-ссылки введите имя, которое будет использоваться в коде для программного доступа к веб-службе сервера отчетов.
Нажмите кнопку Добавить ссылку, чтобы создать в приложении ссылку на веб-службу.
Новая ссылка появится в обозревателе решений в узле "Веб-ссылки" для активного проекта и будет иметь имя, указанное в поле Имя веб-ссылки.
В обозревателе решений разверните папку "Веб-ссылки", чтобы показать пространство имен для классов веб-ссылки, которые доступны элементам проекта.
После добавления веб-ссылки в проект соответствующие файлы отображаются в папке, входящей в папку "Веб-ссылки" обозревателя решений.
После добавления веб-ссылки используйте следующий код для создания экземпляра класса-посредника:
Dim rs As New myNamespace.myReferenceName.ReportExecutionService()
rs.Url = "https://<Server Name>/reportserver/reportexecution2005.asmx?wsdl"
rs.Credentials = System.Net.CredentialCache.DefaultCredentials
myNamespace.myReferenceName.ReportExecutionService rs = new myNamespace.myReferenceName.ReportExecutionService();
rs.Url = "https://<Server Name>/reportserver/reportexecution2005.asmx?wsdl";
rs.Credentials = System.Net.CredentialCache.DefaultCredentials;
Также можно добавить директиву using (Import в Visual Basic) в ссылку на веб-службу сервера отчетов. Если применить эту директиву, нет необходимости полностью уточнять типы пространства имен. Для этого добавьте в файл следующий код:
Import myNamespace.myReferenceName
using myNamespace.myReferenceName;
См. также:
Веб-службы сервера отчетов
Создание приложений с помощью веб-службы и .NET Framework
Технический справочник (службы SSRS)
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по