<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.
Тим Эвалд
