
Cikkünkhöz mellékeltük az alábbi registy kulcsokat és értékeket létrehozó .REG exportállományt "VBSAsCGI.reg" néven. Futtatásával létrejönnek a tárgyalásra kerülő bejegyzések.
Ha a CGI szkriptet lehet futtatni, akkor a VB szkriptet miért nem? Amikor a kiszolgáló futtat egy szkriptet, akkor teszi azt a névtelen felhasználói fiókkal, ami egy Internetes eléréskor az IUSR_gépnév. A VB szkripteket nem névtelen futtatásra tervezték, hanem alapértelmezésben az aktuálisan bejelentkezett felhasználó nevével és jelszavával hitelesít. Próbáljuk ki:
Hozzunk létre egy X.VBS nevű fájl. Tartalma álljon egy sorból:
Futtassuk az Intézőben (Explorer) és megjeleníti a képernyőn a "Hello" szót.
Helyezzük el a fájlt egy Webhely gyökérkönyvtárában (általában \Inetpub\wwwRoot). Tegyük fel, hogy a kiszolgáló neve: SERVER, ekkor a következő módon lehet(ne) futtatni a szkriptet egy kliens gép Internet Explorer-ével
Azonban a "Hello" helyett ez jelenik meg:
CGI hiba
A megadott CGI alkalmazás a HTTP-fejlécek nem teljes készletét adta vissza. A visszaadott fejlécek:
Megoldás: konfiguráljuk az IIS-t, hogy a VB szkripteket ugyanúgy futtassa, mint a CGI szkripteket.
Indítsuk el a Felügyeleti eszközök > Internet szolgáltatáskezelő (Administrative Tools > Internet Services Manager) MMC konzolt. Kattintsunk a jobboldali egérgombbal az adott Webhelyre és válasszuk a "Tulajdonságok" ("Properties") menüt. Lépjünk a megjelenő ablak "Kezdőkönyvtár" ("Home Directory") oldalára. Itt lehet beállítani többek között a kiszolgáló által futtatandó alkalmazásokat. Nyomjuk le a "Konfiguráció" ("Configuration") gombot. Megjelenik egy másik ablak, nekünk itt az "Alkalmazások hozzárendelése" ("App Mappings") a fontos.
Ugyanúgy, mint a Windows-ban, a fájlkiterjesztésekhez végrehajtó programot lehet rendelni. Kattintsunk a "Hozzáadás" ("Add") gombra. Célunk, hogy a VBS kiterjesztéshez az IIS a parancssori CSCRIPT.EXE alkalmazást társítsa. A "Program" ("Executable") mezőbe írjuk be a CSCRIPT helyét, például:
c:\winnt\system32\cscript.exe %s %s
Ne felejtsük el a végéről a paramétereket. A "Kiterjesztés" ("Extension") mezőbe írjuk be:
Az "OK" gombokkal lépjünk ki a beállító ablakokból.
Következő lépés a regisztrációs adatbázis szerkesztése. Meg kell adnunk a Windows Scripting Host (WSH) alapértelmezett beállításait: logo üzenet, kötegmódban való futtatás és időtúllépések letiltása. Indítsuk el a REGEDIT.EXE programot és a "HKEY_USERS\.DEFAULT\Software\Microsoft" helyen hozzuk létre az alábbi két kulcsot:
[HKEY_USERS\.DEFAULT\Software\Microsoft\Windows Scripting Host]
[HKEY_USERS\.DEFAULT\Software\Microsoft\Windows Scripting Host\Settings]
A "Settings" kulcson belül hozzuk létre a következő három duplaszó típust, egyaránt 0 értékkel:
"BatchMode"=dword:00000000
"DisplayLogo"=dword:00000000
"Timeout"=dword:00000000
Lépjünk ki a REGEDIT-ből.
Beállításaink utolsó lépéseként az IIS metaadatbázisában is el kell helyezni két értéket. Szükségünk lesz az IIS-ben lévő "ADSUTIL.VBS" szkriptre, ami alapesetben az "\Inetpub\AdminScripts" könyvtárban található. Ha nincs meg, akkor nem a teljes IIS van a gépünkön, ebben az esetben a Vezérlőpult > Programok telepítése/törlése (Control Panel > Add/Remove Programs) részével pótoljuk a hiányzó részt. Indítsunk el egy parancssori ablakot és írjuk be:
cscript adsutil.vbs SET w3svc/CreateCGIWithNewConsole "1"
cscript adsutil.vbs SET w3svc/CreateProcessAsUser "0"
Ezzel gyakorlatilag végeztünk is. Térjünk vissza az Internet Explorer-hez és próbáljuk meg ismét futtatni az X.VBS szkriptünket. Az előbbi hibaüzenet helyett megjelenik a "Hello" felirat. Ettől kezdve semmi akadálya, hogy megkezdjük az Internetes programozást Visual Basic szkriptek segítségével.