Выбрать главу

Чтобы создать Web-службу для целей тестирования, вы должны запустить сервер Internet Information Server (IIS) либо на собственном локальном настольном компьютере, либо на сервере, доступном для тестируемого мобильного устройства. Для инсталляции IIS потребуется также наличие соответствующих серверных расширений, обеспечивающих функционирование вашего средства разработки; в конфигурировании этих расширений на IIS вам поможет инсталлятор Visual Studio .NET.

Для создания Web-службы необходимо выполнить следующие действия:

1. Запустите Visual Studio .NET и создайте новый проект C# ASP.NET Web service. Средство разработки попросит вас указать местоположение Web-службы. Указав, например, адрес http://localhost/WebService1, вы coздaдитe Web-cлyжбy на локальном компьютере, тогда как указание адреса http://MyWebServer/WebService1 приведет к созданию Web-службы с именем WebService1 на сервере с именем MyWebServer. 

Результат: будет создан класс Service1, а на указанном вами Web-сервере будет развернут файл Service1.asmx.

2. Создайте в классе Service1 общедоступный Web-метод. Приведенный в листинге 15.6 код соответствует простому методу, предоставляющему себя в качестве Web-службы. Введите код в класс Service1, созданный вами на шаге 1.

3. Чтобы развернуть и запустить на выполнение проект Web-службы, нажмите клавишу <F5>. Для Web-службы будет автоматически создана Web-страница, показывающая, какие методы предоставляются Web-службой, и позволяющая вызывать эти методы через Web-браузер. Чтобы протестировать Web-службу, используйте Web-браузер для перехода по адресу Web-службы и класса, указанных вами на шагах 1 и 2 (например, http://MyWebServer/WebService1/Service1.asmx).

Листинг 15.6. Простая Web-служба

//Этот код следует вставить в класс Service1, содержащийся //в файле "Service1.asmx". //

//"[WebMethod]" - это атрибут метаданных, который указывает механизму Web- // службы на то, что данный метод должен быть доступным через Web

[WebMethod]

public int AddTwoNumbers(int x,int у) {

 return x + у;

}

Вызов Web-службы с устройства средствами .NET Compact Framework

НА ЗАМЕТКУ

Для выполнения кода на физическом или эмулированном устройстве используется логическая машина отличная от машины разработки, даже если эмулятор и выполняется на той же физической машине, что и ваш Web-сервер, имена соответствующих машин будут разными. Вследствие этого вы не можете использовать URL //localhost/WebService1, чтобы задать с устройства местоположение Web-службы; вы должны использовать фактическое имя хост-машины (например, //myDevMachine1/WebService) так, как вызывали бы Web-службу с другого ПК.

Вызов Web-службы с устройства работает почти точно так же, как и вызов, выполняемый с настольного компьютера или сервера. Чтобы вызвать Web-службу с мобильного устройства, потребуется выполнить следующие действия:

1. Запустите Visual Studio .NET и создайте проект C# Smart Device Application.

2. Выберите в меню Project (Проект) пункт Add Web Reference (Добавить Web- ссылку). В результате этого на экране отобразится диалоговое окно, где вы можете найти Web-службу, на которую хотите сослаться. Введите URL-адрес Web- службы, которую вы создали перед этим (например, http://MyWebServer/ WebService1/Service1.asmx).

3. Перейдя в диалоговое окно Add Web Reference, введите в текстовом окне Web Reference Name (Имя Web-ссылки) текст MyTestWebService, а затем щелкните на кнопке Add Reference (Добавить ссылку). В результате этого будет загружен WSDL-документ, описывающий Web-службу, а в вашем проекте создан локальный прокси-класс, благодаря чему вы сможете легко вызвать Web-службу.

4. Поместите на форму вашего приложения кнопку и дважды щелкните на ней. В результате этого фокус ввода переместится в код обработчика событий кнопки.

5. Введите следующий код:

//Создать экземпляр локального прокси-объекта

MyTestWebService.Service1 myWebService;

myWebService = new MyTestWebService.Service1();

//Указать локальному прокси-объекту на необходимость вызова Web-службы