Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Троелсен Э. -> "С# и платформа .NET. Библиотека программиста" -> 313

С# и платформа .NET. Библиотека программиста - Троелсен Э.

Троелсен Э. С# и платформа .NET. Библиотека программиста — СПб.: Питер, 2004. — 796 c.
ISBN 5-318-00750-3
Скачать (прямая ссылка): cplatforma2004.pdf
Предыдущая << 1 .. 307 308 309 310 311 312 < 313 > 314 315 316 317 318 319 .. 320 >> Следующая

Информация о всех web-службах в конкретном виртуальном каталоге и его подкаталогах хранится в файле *.disco. Этот файл создается Visual Studio.NET полностью автоматически. Например, при создании нового проекта на основе шаблона Web Service исходный код файла *.disco будет таким:
<?xml version-"l.Q" ?>
<dynamicDiscovery xmlns="urn:schemas-dynamiediscovery:di sco.2000-03-17">
<exclude path-"_vt1 cnf" />
<exclude path="_vti_pvt" />
<exclude path«"_vti_log" />
<exclude path="_vti"script" />
<exclude path="_vti_txt" />
<exclude path-"Web References" />
</dynamicDi scovery>
Ter <dynamicDi scovery> определяет, что в ответ на запрос к службе обнаружения данный файл *.disco должен быть обработан средой выполнения ASP.NET на сервере и клиентудолжен быть возвращен ответ на его запрос (ответ, конечно, будет в формате XML), сгенерированный на основе файла \disco. Например, если мы обратимся из Internet Explorer к файлу *.disco для нашего CarsWebService, то среда выполнения ASP.NET сгенерирует нам ответ в формате XM L, который представлен нарис. 15.22.
Протокол обнаружения web-службы 779
'3hltp://lDCalhu5t/Car5Web5emcE/LrtrsWtrliIiervni-jfiH-o - Чіггочиїт
ІЗ* Edit її»» riwrftef look йе'е
¦>Badt ~ - (3 2) tJJ I ffiPersonalBar (?Search & Favorit»
Ш
AeldreK Iff] http://IC4;alhost/CarsWebServJi:e/CarsWeb5ervlce.tflsco
<7xml version=" l.Q- ?>
<discovery xmlns="hltp://schemas.xmlsoap.org/disco/"> <contractRef
ref='http://lGcalhost/CarsWebSBrvlce/Servicel.asmK7 wsdl"
docRef="http://localhost/CarsWBbService/Servicel.asmx"
xrnlns="http://schemas.Kmlsoap.org/disco/sci/" />
</discovery>
Iff} Done
KK Local intranet
Рис. 15.22. Информация о web-службах нашего виртуального каталога
Добавление новой web-службы
Пока в нашем виртуальном каталоге есть только одна web-служба, к которой обращаются по адресу/CarsWebService/Servicel.asmx. Поэтому содержимое файла *,di:co вполне очевидно. Однако что произойдет, если мы добавим в наш виртуальный каталог новую web-службу? Давайте так и сделаем.
Откроем в Visual Studio.NET наш проект CarWebServicen добавим в него нов™ web-службу. Проще всего это сделать при помощи меню Project (Проект) > Add Web Service (Добавить web-службу). Новую web-службу мы назовем MotorBikes.asmK (рис. 15.23).
Add Hew Item - C-rUiW^hService
Categories:
Templates:
Іїїй)
и a
Web Form C* Gas:;
НІЙ
Component Web Control Леї™ Server-Page
Dynamic Crystal Report Global Discovery RIe Applicati,,,
Create 4 new ASPiNET Web Service and it to tb» project. Цате; jMotorBikei.asmx
Open
Cancel
rjelp
Рис. 15.23. В одном проекте Web Service может быть несколько web-служб
780 Глава 15 • Web-службы
В классе MotorBi будет определен единственный метод: [WetoMetnod]
public string GetEiikerDescO
return "Name: Wight: 374 pounds.":
После перекомпиляции нашего проекта файл *,d¦sco вернет нам информацию уже о двух web-службах (рис. 15.24).
5 http;//localhost/CarsWebServlce/CarsWpbServh:e4*«o - MKf
FUff ?cft -ЬЪ'л' favorites Jpoi? : •::
Address ! ht^://kEaS-!OSC/CersWabSsrvice)'C.jriWcbSertf/ce draco
1\ S
Go Links "
<?xml version=" 1.0' ?>
<discovsry xmlns="http://s(;hemas.«nilsoap.oi-g/disco/"> ccontractRef
ref="http://localhost/CarsVVBbServlce/Servicel.asmx7 wsctl"
docRef="http://lDcalhost/CarsWebSer«!ce/SBrwlcel.asmx"
Kmlns="http.7/schema-,.Kfr)Isod(j.ory/disco/scl/"/> <cantractRef ,
ref=' http://localhDst/CarsWebSerulce/MotorBikes.asmx? wsdl"
docRe f="http ://locaJhost/Cars WebSe rvice/MotorB ike s. a smK"
:<rriln;=''http://st^tmirts.>milsoap.org/dist:u/sd/"/> </discovery>
І
?1 Dons
Г ^ Lscai rar.5T.er
Рис. 15.24. Файл *.cusco возвращает информацию обо всех web-службах виртуального каталога
Конечно, просмотр необработанного кода XM L в браузере — это не самый лучший способ получения сведений о web-службах. В библиотеке базовых классов .NET предусмотрены типы, которые позволяют работать с данными, возвращаемыми службой обнаружения. Кроме того, эта информация необходима мастеру Add Web Reference и многим средствам разработки.
Подведение итогов
В этой главе были рассмотрены основные принципы и приемы построения web-служб. Вначале мы рассмотрели наиболее важные пространства имен и типы, которые используются для создания web-служб, а также основные технологии: службы обнаружения, язык описания web-служб (WSDL) и протокол подключения (HTTP-GET, HTTP-POST и SOAP).
После того как web-служба создана и мы определили в ней доступные для внешних клиентов методы при помощи атрибута [WebMethod], проще всего реализовы-вать клиентов таким образом, чтобы они обращались не к web-службе напрямую,
Подведение итогов 781
а к промежуточной прокси-сборке, которая будет перенаправлять вызовы методов на web-службу. Прокси-сборку можно сгенерировать при помощи утилиты wsdl.exe (для использования любого протокола подключения), либо из Visual StU-dio.NET (только для SOAP). В самом конце были рассмотрены вопросы передачи объектов пользовательских типов посредством SOAP и определения классов как пригодных для сериал изациивформатеХМЕприпомощи атрибутах .!Include.
Предыдущая << 1 .. 307 308 309 310 311 312 < 313 > 314 315 316 317 318 319 .. 320 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100