Обнаружение веб-служб
Обновлен: Ноябрь 2007
В некоторых случаях можно одновременно выступать и поставщиком, и клиентом веб-службы. Здесь, скорее всего, расположение и функции веб-службы будут известны. В других случаях, можно обращаться к веб-службе, предоставляемой другим пользователем. Здесь может быть неизвестно даже, существует ли в действительности необходимая веб-служба.
Веб-ссылки
Для упрощения модели кодирования в приложениях, написанных в управляемом коде, используются веб-ссылки, служащие для локального представления каждой используемой веб-службы. Веб-ссылки добавляются в проект с помощью диалогового окна "Добавление веб-ссылки". Это диалоговое окно позволяет обратиться к локальному серверу, каталогу Microsoft UDDI или Интернету вообще. Поставщики веб-служб публикуют свои веб-службы в каталогах веб-служб, где клиенты веб-служб ищут необходимые им службы. Дополнительные сведения см. в разделе XML Web Services Directories.
Диалоговое окно "Добавление веб-ссылки" использует процесс обнаружения веб-служб для поиска подходящих веб-служб на выбранных веб-узлах. Веб-узел по каждому адресу будет опрашиваться с применением алгоритма, разработанного для поиска документов описания веб-службы, построенных по правилам грамматики языка описания веб-служб (WSDL). Дополнительные сведения см. в разделах XML Web Service Discovery и XML Web Service Description.
После того как с помощью диалогового окна "Добавление веб-ссылки" для приложения найдена веб-служба, по нажатию кнопки "Добавить ссылку" Visual Studio загрузит описание службы на локальный компьютер и создаст класс прокси для выбранной веб-службы. Класс прокси будет содержать методы для вызова каждого опубликованного метода веб-службы как в синхронном, так и в асинхронном режиме. Этот класс содержится в файле с выделенным кодом локального WSDL-файла. Дополнительные сведения см. в разделах Веб-ссылки в Visual Studio и Диалоговое окно "Добавление веб-ссылки".
С помощью свойства Web Reference URL можно задать URL-адрес веб-службы. Диалоговое окно "Добавление веб-ссылки" по умолчанию задает в качестве значения этого свойства URL-адрес выбранной веб-службы, который является статическим. Веб-ссылка может использовать как статический, так и динамический URL-адрес.
Если в свойстве URL Behavior оставить заданное по умолчанию статическое значение, при создании экземпляра класса прокси в качестве значения URL-свойства будет использован жестко заданный URL-адрес.
Если указать для свойства URL Behavior динамическое значение, приложение будет получать URL-адрес во время выполнения через элемент Элемент appSettings (схема общих параметров) файла конфигурации приложения. При задании динамического URL-адреса после добавления веб-ссылки Visual Studio изменяет класс прокси так, чтобы он получал URL-адрес из файла конфигурации.
<appSettings>
<add key="myApplication.myServer.Service1"
value="http://myServer/myWebService/Service1.asmx"/>
</appSettings>
При создании экземпляра класса прокси можно также задать URL-свойство объекта в самом приложении.
Независимо от того, какой URL-адрес используется прокси, он должен соответствовать веб-службе, WSDL-описание которой совпадает с описанием, использованным при добавлении веб-ссылки.
Можно также создать класс прокси, используя специальное средство (программу языка описания веб-служб), подобное тому, что используется в Visual Studio для создания класса прокси при добавлении веб-ссылки. Это необходимо в случаях, когда нет возможности обратиться к веб-службе с компьютера, на котором установлена среда Visual Studio, а также в случаях, когда веб-служба находится в сети, которая недоступна клиенту до времени выполнения. Затем файл, созданный этим средством, нужно вручную добавить в проект приложения. Дополнительные сведения см. в разделе Практическое руководство. Создание прокси для веб-службы.
См. также
Основные понятия
Building XML Web Service Clients