<webServices>

<protocols>

<remove name="HttpGet"/> <remove name="HttpPosf '/> </pi"otocols> • </webServices>

А чтобы отключить эти протоколы для всей системы, модифицируйте файл machine.config, удалив HttpGet и HttpPost из списка протоколов.

Теперь, собрав Web-сервис и перейдя к его WSDL-доку менту, вы увидите облегченную версию документа, которая просто импортирует Weather-Interface, wsdl и добавляет определение сервиса (рис. 9). Определение сер­виса можно рассматривать как специфическую реализацию интерфейса, определенного в

Рис. 9. Конечный WS PL -докучен i


Программирование с использованием интерфейса

Для создания клиентов, обращающихся к интерфейсу Weather, можно вос­пользоваться либо wsdl.exe, либо командой Add Web Reference в Visual

Studio и тем самым сгенерировать прокси-класс на основе интерфейса. Заметьте; создавая этот класс, вы указываете на Weal herlnterl'acc.wsdl, со­держащий информацию только об интерфейсе. Там нет URL сервиса, реа­лизующего данный интерфейс, поэтому ГK.I.. нужно указывать либо на этапе разработки, либо в период выполнения клиента. Однако, вместо того чтобы «зашивать» URL в код, лучше поместить его в конфигурационный файл клиента и считывать в период выполнения. Вот как выглядит код клиента, использующего Wea! her ini ei't асе:

Private Sub btr»Weatr.er_Click( _

ByVal sender As System.Object, SyVal e As System,EventArjs) _ Handles btnWeather. Click Dim ws As New localhost,WeatherInterface() ws.Uil = System.Configuration.

ConfigurationSettings.AppSettingsC'ServiceUrl") Dim     As localhost.Currentvteather = ws.GetWeather("20171")

Ena Sub

Заключение

Web-сервисы предназначены для обмена данными в виде XML-сообщений между приложениями, поэтому создание Web-сервиса требует тщательно- го проектирования этих сообщений с помощью XML Schema и WS DL Если вы начинаете с проектирования сообщений, а не методов, то тип дан- ных, которые должен принимать и возвращать ваш                                              становит- ся очевидным. Проектируя сообщения с применением XSD и WSDL, вы создаете формальное определение интерфейса. И тогда клиент Web-серви- са можно программировать на основе этого интерфейса параллельно с его реализацией разработчиком Web-сервиса. В следующий раз, когда вы бу- дете создавать проект, связанный с Web-сервисом, начните с проектирова- ния формата сообщений в дизайнере XML-схем Visual Studio.

Тим Эвалд