Windows - IIS metaadatbázisának közvetlen szerkesztése

A .NET szerverek Internet Information Services (IIS) szolgáltatása a korábbi verzióktól alapvetően eltérő adatbázis szerkezetet használ konfigurációs adatok mentésére. Az új felépítés lehetővé teszi, hogy külső szövegszerkesztővel - akár a notepad-el - módosítsuk a beállításokat. Akik azonban ezzel megpróbálkoznak azt tapasztalják, hogy a szolgáltatás működés közben nem ad lehetőséget a változtatásra. Vagy mégis?
Cikkünk írásának idején a .NET kiszolgálók fejlesztése RC2 fázisban volt, ezért a végleges verzióban lehetnek eltérések a leírtakhoz képest.
Megjegyzés: az alábbiak végrehajtásához rendszergazdai jogokra van szükség.
Az IIS korábbi a verziókban minden beállítást, beleértve a Web és FTP helyek virtuális könyvtárait is egy metaadatbázisban tárolt, bináris formátumban. Ennek legnagyobb hátránya az volt, hogy nem olvasható és szerkeszthető kívülről, egyedi a formátuma és hiányoznak a kezeléséhez szükséges eszközök. Egyedül az IIS tudja használni és módosítani. Programozók számára ez nem jó hír, mert alkalmazásaikból csak valamilyen interfészen keresztül (pl. ADSI) érhetik el, ami további feltételeket szab. Mentségül felhozható, hogy szkriptekből is élvez támogatást.
Az IIS 6.0 nem használ bináris adatbázist, helyette a beállítások XML alapú állományban tárolódnak, élvezve az XML minden előnyét: olvasható, írható, programozható - akár egyszerű eszközökkel (pl.: notepad) is és számtalan további eszköz létezik kifejezetten az XML szerkezet kezelésére.
Hol tárolódik az adatbázis? A %systemroot%\system32\inetsrv\metabase.xml fájlban. Találunk mellette egy másik XML állományt MBSchema.xml néven, ez tárolja az adatbázis sémáját.
Nyissuk meg a metabase.xml-t és módosítsuk egy tetszőleges helyen, mindegy hogy hol és mit, mert alapértelmezésben a rendszer úgysem engedi megváltoztatni.
Próbáljuk meg elmenteni a megváltoztatott állományt. Hibaüzenetet kapunk. Kattintsunk rá a fájl nevére a jobboldali egérgombbal és hívjuk elő a "Properties" menüt.

Láthatjuk, hogy nincs bekapcsolva a "Read-only" attribútum. Nézzük meg a "Security" oldal ACL listáját: a rendszergazdáknak van módosítási joguk, tehát nem fájlszintű a védelem, hanem az operációs rendszer fennhatósága alá tartozik. Akkor hogy lehet mégis módosítani? Csak elméletileg lehetséges az XML előnyeinek kihasználása?
A módosítás lehetséges, csak meg kell változtatni az alapbeállítást. Nyissuk meg az Administrative Tools > Internet Information Services (IIS) Manager felügyeleti konzolt és a faszerkezetben kattintsunk az IIS-t futtató számítógép nevére a jobboldali egérgombbal, majd lépjünk a felbukkanó menü "Properties" sorára.

Kapcsoljuk be az "Enable Direct Metabase Edit" jelölőnégyzetet, majd kattintsunk az "OK" vagy "Apply" gombok valamelyikére.
Térjünk vissza a metaadatbázishoz, nyissuk meg a notepad-el. Most már óvatosabban kísérletezzünk a változtatásokkal. Nézzünk egy példát:
Keressük meg a "Default Web Site" bejegyzést (Edit > Find > Default Web Site - csak egyszer szerepel) és módosítsuk "Default Web Site2"-re. Mentsük el a metabase.xml-t és térjünk vissza az Internet Information Services (IIS) Manager felügyeleti konzolhoz. Kattintsunk a kiszolgáló neve alatt a Web Sites előtti + jelre. Láthatjuk, hogy az eddig "Default Web Site" néven szereplő alapértelmezett webhely neve "Default Web Site2" lett.
Állítsuk vissza az eredeti állapotot.
Ha kikapcsoljuk az "Enable Direct Metabase Edit" jelölőnégyzetet, akkor ismét védetté válik a metaadatbázis.