HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

A VS.NET WebService "discovery" eszköze


Példaprogram letöltése

20521 bájt

A Webes szervizek témakörében jelen van egy fogalom, mely a WebService Discovery nevet viseli. Ennek bemutatásához meg kell ismernünk a Visual Studio.NET disco.exe parancssori eszközét. A program bemutatásakor ecseteljük, mire is használható tulajdonképpen, milyen parancssori kapcsolókkal finomítható a program által elvégzendő művelet. A mellékelt példában a szervizünket elérő Windows-os kliensben fel is használjuk a programocska által generált állományt.

Mellékelt példa megnyitása előtt szükséges egy Service nevű virtuális könyvtár létrehozása, mely a példa mappájában található Service alkönyvtárra mutat. Ehhez nyissa meg a mappa Tulajdonság ablakát és itt a Webmegosztás lapon engedélyezze a mappa megosztását olvasási és parancsfájlok futtatási jogával.
A kliens alkalmazás futtatása előtt gondoskodnunk kell arról, hogy a Web szerver virtuális mappájában engedélyezzük a névtelen hozzáférést.
A Disco.exe parancssori eszköz
A disco.exe program bemutatása előtt ejtenünk kell pár szót WebService discovery (felfedezés) procedúrájáról, melyhez szervesen kapcsolódik a bemutatandó segédprogram funkcionalitása.
A webes szervizek felfedezése az a folyamat, melyben meghatározzuk a szerviz URL-jét, valamint lekérdezzük annak jellemzőit. Ezek a legelső lépések afelé, hogy elérhessük a szerviz funkcióit egy alkalmazásból. A fejlesztendő, és a szervizünket használó alkalmazásnak már szerkesztési időben ismernie kell a szerviz helyét, képességeit, illetve hogy miként teremthetnek vele kapcsolatot.
Annak érdekében, hogy programból is lekérdezhessük ezeket az információkat, a szerviz alkalmazásnak rendelkeznie kell egy .disco kiterjesztésű állománnyal, melynek neve megegyezik a szerviz osztályának nevével. Az állomány amellett, hogy tartalmazza a szerviz jellemzőit, tartalmazza a hivatkozásokat a szerviz egyéb dokumentumaira (egyéb XML állományok .xsd, .wsdl kiterjesztéssel).
Amennyiben a böngészőnkben megadjuk a szerviz elérési útvonalát, és az URL-t a „?DISCO” kulcsszóval zárjuk le, akkor lekérdezhetjük a fent említett állomány tartalmát. A példa szervizünkben a következő módon tehető ez meg:
http://localhost/Service/WService.asmx?DISCO
A művelet eredményeképpen megjelenik egy szabályos XML-szerkezetű eredményhalmaz.
<?xml version="1.0" encoding="utf-8" ?> 
<discovery xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.xmlsoap.org/disco/">
  ...
</discovery>
A <discovery></discovery> tagok között található elemek tartalmazzák az adott szerviz jellemzőit, sémáit.
A Disco.exe parancssori eszköz alkalmas arra, hogy egy tetszőlegesen megadott URL-en elérhető Webes szerviz számára generálja a szerviz jellemzőit és funkcionalitását leíró állományokat. A program értékeli a szerviz alkalmazás helyét reprezentáló URL-t, és állományokba menti az információkat.
Általánosságban elmondható, hogy a Webes szervizünket beépítő ASP.NET alkalmazásnak nem feltétlenül kell támogatni a DISCOVERY tulajdonságot. A program által generált állományok inputjai lehetnek a VS.NET másik parancssori eszközének, a WSDL.exe segédprogramnak.
A program indításának általános szintaxisa a következő:
disco [options] URL
  • Az URl természetesen a szerviz helyét meghatározó erőforrás-azonosító.
  • Az OPTIONS elem helyén kell megadni azokat a kapcsolókat, melyek testre szabott futtatást tesznek lehetővé. Lássuk, melyek ezek:
Kapcsolók Jelentés
/d[omain]: domain Amennyiben a szerviz elérése proxy kiszolgálón keresztül valósul meg, a proxy domain nevét kell itt megadni a hitelesítés elvégzéséhez.
/nosave A szerviz jellemzőit leíró állományok nem kerülnek elmentésre.
/nologo Nem jelenik meg a Microsoft cég két soros bevezetője.
/o[ut]: könyvtárnév A létrehozott állományok a megadott könyvtárba kerülnek. Alapértelmezett esetben az aktuális könyvtárba.
/p[assword]: jelszó Amennyiben proxy kiszolgálón keresztül zajlik az adatforgalom, itt lehet megadni a hitelesítő jelszót.
/proxy: URL A proxy kiszolgáló URL-je, melyeket a HTTP kérésekhez használ.
/proxydomain: domain, vagy /pd: domain A proxy kiszolgáló domain neve.
/proxypassword: jelszó Amennyiben proxy kiszolgálón keresztül zajlik az adatforgalom, itt lehet megadni a hitelesítő jelszót.
/proxyusername: felhasználónév Amennyiben proxy kiszolgálón keresztül zajlik az adatforgalom, itt lehet megadni a hitelesítő felhasználónevet.
/username: felhasználónév Amennyiben proxy kiszolgálón keresztül zajlik az adatforgalom, itt lehet megadni a hitelesítő felhasználónevet.
/? Megjeleníti asz összes lehetséges kapcsolót.
A program a következő módon indítható, a példa szervizünk URL-jét felhasználva:
Disco /out:C:\ http://localhost/Service/WService.asmx
Ekkor keletkezik egy WService.disco, egy WService.wsdl nevű állomány, valamint egy result.discomap nevű állomány, mely tartalmazza a szerviz valamennyi jellemzőjének referenciáját.
Amennyiben a szervizünket egy ASP.NET Web-alkalmazásban szeretnénk felhasználni, és szükség van a szerviz jellemzőinek publikálására, akkor a generált .disco állományt az alkalmazás mappájában kell elhelyezni. Amennyiben az alkalmazás alapértelmezett állománya egy HTML állomány, akkor a <head></head> elemek között a következő hivatkozás helyezhető el:
<HEAD>
  <link type='text/xml' rel='alternate' href='MyWebService.disco'/>
</HEAD>
Amennyiben az alapértelmezett állomány egy XML fájl, akkor a következő hivatkozással lehet jelezni a .disco állomány nevét:
<?xml-stylesheet type="text/xml" alternate="yes" href="MyWebService.disco" ?>
A mellékelt példa
A példa két részből áll. A Service mappában helyeztük el a szerviz forráskódját, mely egyetlen metódussal bír, egy számokat összeadó AddNumbers nevű függvénnyel. A metódus két egész paramétert kap, melyeket összeadva egy karakterláncban adja vissza az eredményt.
A Client mappában található a szervizünket felhasználó Windows-os alkalmazás, melyben felhasználjuk a szerviz metódusát a két szám összeadásához. A szerviz eléréséhez szükséges proxy osztályt úgy hozzuk létre, hogy egy Webes referenciát adunk a kliensünkhöz, és az URL mezőben a generált WService.disco állományt adjuk meg.
A hivatkozás LOCALHOST néven jelenik meg, melynek mappájában láthatóak a szükséges állományok, illetve bekerül a mappába Reference.cs néven a proxy osztályt tartalmazó állomány is.



Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2003 évkönyv 296. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |