Обнаружение веб-служб

Обновлен: Ноябрь 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

XML Web Service Description

Другие ресурсы

Доступ к веб-службам в управляемом коде