
Mellékelt példa megnyitása előtt szükséges egy TestService nevű virtuális könyvtár létrehozása, mely a példa könyvtárában található TestService mappára mutat. Ehhez futtassa le a mellékelt CreateVD.js parancsállományt.
A mellékelt alkalmazás űrlapjának bal oldali szegmensében egy fastruktúra lesz látható a program indulása után, mely az IIS szerveren található valamennyi webes könyvtár nevét megjeleníti. A jobb oldali böngészőkontrolba pedig a kiválasztott szervizalkalmazás tetszőleges lapja tölthető be.
A szerveren található alkalmazások, szervizek lekérdezéséhez szükséges metódusokat a Client projekt Utility osztályában valósítottuk meg.
A lekérdezett adatok egy DataSet objektum két DataTable táblájában tárolódnak, melyet a GetDataSet metódussal hozunk létre.
A GetServices metódusban kérdezzük le a szerver alkalmazásait, és töltjük be ezeket az adatokat a DataSet objektumba. Az IIS szerver elérése az első lépés, melyet a DirectoryEntry osztály segítségével teszünk meg.
string wwwPath = "IIS://localhost/W3svc";
DirectoryEntry service = new DirectoryEntry(wwwPath);
Ezt követően végig kell haladnunk a bejegyzéseken. Amennyiben a bejegyzések SchemaClassName property-je a „IIsWebServer” karakterlánccal azonos, vagyis Web-szerverről van szó, akkor annak tulajdonságait lekérdezzük, és a megfelelő adattáblába beszúrunk egy-egy rekordot.
if (entry.SchemaClassName == "IIsWebServer")
{
DataRow dr = ds.Tables[0].NewRow();
string hostname = entry.Properties["ServerBindings"].Value.ToString();
dr["NAME"] = entry.Properties["ServerComment"].Value.ToString();
dr["HOSTNAME"] = hostname;
ds.Tables[0].Rows.Add(dr);
...
A ServerBindings tulajdonsága adja meg bejegyzés végponti információit. Ennek formátuma: IP:Port:Hostname.
A következő lépés, hogy a virtuális mappákon haladunk végig. Ezeket az IIsWebVirtualDir objektumtípus azonosítja. A virtuális mappák fizikai elérési útvonalait a GetDirectoryEntryPath metódussal kérdezhetjük le minden bejegyzés esetében.
A GetASMXFiles metódussal pedig a Web-szervizalkalmazás .asmx állományait gyűjthetjük ki, melyeket meg is jelenítünk a fastruktúrában.
A kliensalkalmazásban a PopulateTreeView metódusban töltjük fel a TreeView kontrolt a DataSet objektum megfelelő táblájában fellelhető bejegyzések adatival.
Itt a gyökérelem a számítógép neve lesz. A kiolvasott adatok alapján megjelenítjük a webes alkalmazások virtuális mappáinak nevét, és amennyiben Web-szervizről van szó, felfűzünk egy csomópontot, melynek szövege az állomány neve lesz. A csomópontokat a CreateNode metódus készíti el és fűzi fel a fára.