asphelper.de - Tipps & Skripts - Die Metabase

Link: Wichtiger Hinweis in eigener Sache!


 Autor: Klaus Keller Erstellt am: 2004-09-14 Aufrufe: 13696 


 << Vorheriger Tipp Nächster Tipp >>



Tipp 68: Die Metabase



Inhalt dieser Seite:


Die Metabase - Einführung
Die Internet Information Services (IIS) sind ein wichtiges Instrument, ist dieser Webserver immerhin der am meisten eingesetzte Webserver für ASP. Ein wichtiges Bestandteil des IIS ist die Metabase, welche für die meisten ASP-Programmierer eher unbekannt ist. Mit diesem Tipp möchte ich Ihnen die Metabase etwas näher bringen, wie der Zugriff darauf funktioniert und einiges mehr.

Die Metabase ist der Windows-Registry ähnlich, als hierarchische Struktur aufgebaut. Die Einteilung erfolgt dabei wie bei Verzeichnissen, also logisch nach dem Einsatzbereich eingeteilt, die Daten in Schlüsseln gespeichert. Viele hatten mit der Metabase bereits zu tun, und zwar dann wenn man im Internetdienste-Manager (ISM = Internet Service Manager) Einstellungen ändert. Diese Einstellungen werden in der Metabase gespeichert. Die Metabase ist als Datei namens Metabase.bin zu finden unter C:\WINNT\system32\inetsrv.


Zugriff auf die Metabase
Um Werte in der Metabase zu ändern stehen Ihnen 3 Möglichkeiten zur Verfügung. Per Internetdienste-Manager, allerdings können Sie damit nicht alle Werte ändern. Mit einem Skript, etwas komplizierter aber sehr umfangreich. Die 3. Möglichkeit die Metabase zu ändern ist per Metabase-Editor. Nachfolgend diese Möglichkeiten vorgestellt. Eines allerdings vorweg: Erstellen Sie vor Änderungen ein Sicherung der Metabase, wie das geht beschreibt der Abschnitt Backup - Sichern der Metabase


Zugriff per Internetdienste-Manager
Der Internetdienste-Manager ist zu finden per Systemsteuerung, Verwaltung. Darin können Sie einige Schlüssel ändern, allerdings nicht alle. Ein Beispiel dafür sind die Zugriffsrechte auf ein Verzeichnis/eine Datei. Oder das Erstellen eines neuen Virtuellen Verzeichnisses und einiges mehr. Aber wie schon gesagt, mit dem ISM kann man nicht alle Metabase-Werte ändern, da brauchen Sie andere Hilfsmittel.

Ich möchte Ihnen nun zeigen, wie ein Skript-Timeout im ISM gesetzt wird. Öffnen Sie dazu den ISM. Erweitern Sie nun den Knoten, welcher den Namen Ihres PCs hat. Nun sollte auch "Standardwebsite" dastehen. Einen Rechtsklick darauf, klicken Sie auf Eigenschaften. Klicken Sie oben auf "Basisverzeichnis", im unteren Bereich gibt es einen Button namens "Konfiguration", klicken Sie darauf. Klicken Sie nun oben auf "Anwendungsoptionen". In diesem Fenster können Sie nun festlegen, wie lange eine Sitzung (Session) dauert und wieviele Sekunden eine Skript maximal läuft. Als Sitzungstimeout sind 20 Minuten seit Windows 2000 vorgegeben, als Skripttimeout 90 Sekunden. Falls Sie hier etwas ändern wird dies für alle Verzeichnisse durchgeführt, ob nun normale Verzeichnisse oder Virtuelle Verzeichnisse wie auch für Dateien. Deshalb gilt auch hier: Vorsicht!

Übrigens können Sie diese Einstellungen für jedes Verzeichnis durchführen. Erweitern Sie einfach das Verzeichnis "Standardwebsite", nun sollten alle Ordner aus "Inetpub\wwwroot" angezeigt werden. Suchen Sie das entsprechende Verzeichnis aus und führen die Schritte wie zuvor aus, also Rechtsklick, Eigenschaften, Verzeichnis. Falls allerdings der Button "Konfiguration" nicht als aktiv angezeigt wird, dann müssen Sie das Verzeichnis als ein Virtuelles Verzeichnis erstellen. Das hat den Vorteil, daß damit in diesem Verzeichnis getrennte Einstellungen vorgenommen werden können, z.B. Timeout und andere. Auch eine eigene Global.asa können Sie damit in diesem Verzeichnis einsetzen. Um das Verzeichnis als ein virtuelles zu erstellen Klicken Sie im Fenster "Verzeichnis" auf "Erstellen", nun sollte der Button "Konfiguration" aktiv sein.


Zugriff per Skripte
Das Verändern und Auslesen von Schlüssel aus der Metabase mit Skripten wird vor allem dann eingesetzt wenn man nicht direkt vor dem Server sitzt. Die Anzahl und Möglichkeiten dieser Skripte ist sehr umfangreich und würde diesen Beitrag sprengen. Microsoft stellt hierfür eine Technologie namens ADSI = Active Directory Service Interface bereit, eine Schnittstelle für das Bearbeitet von Verzeichnisdiensten wie z.B. den IIS.

Nachfolgend ein Beispiel für den Einsatz von derartigen Skripten. In Tipp 14: Word-Dokument per ASP bearbeiten habe ich schon vorgestellt, wie man per ASP ein Word-Dokument bearbeitet. Allerdings kann dabei ein Fehler auftreten:
Serverobjekt-Fehler 'ASP 0196 : 80040154'
Kann nicht aus Prozesskomponente heraus starten

Der Grund, daß dieser Fehler entsteht ist die Sicherheit. Denn der IIS hat einen reservierten Speicherbereich, stürzt der IIS ab ist nur der IIS davon betroffen und nicht ganz Windows. Das erstellen des Worddokuments wurde aber verweigert, da das erstellen des Objekts ausserhalb dieses Speicherbereichs für den IIS erstellt werden soll. Eine Lösung wäre sehr einfach: Erstellen Sie das Objekt statt mit Server.CreateObject einfach mit CreateObject. Das sollen Sie jedoch eher gar nicht einsetzen, und wenn dann nur in absoluten Ausnahmefällen, eben aus Gründen der Stabilität.

Die nun bessere Lösung wäre ein Eintrag in der Metabase zu ändern, und zwar "AspAllowOutOfProcComponents". Mit einem einfachen Skript kann man dies durchführen, entweder als vbs-Datei, als Visual-Basic Programm oder als ASP-Datei. Beispiel als ASP-Datei:
1   
2
3
4
5
6
7
<%
Dim objW3svc
set objW3svc=GetObject("IIS://localhost/w3svc")
objW3svc.Put "AspAllowOutOfProcComponents", True
objW3svc.SetInfo
set objW3svc=Nothing
%>

Damit wird AspAllowOutOfProcComponents auf true gesetzt und das Word-Dokument kann problemlos per ASP bearbeitet werden. Falls Sie nun das Skript per ASP testen kann es einen Fehler verursachen: "800a0046, Erlaubnis verweigert.: 'GetObject'"
Eine Lösung dazu finden Sie unter http://www.asphelper.de/aspfehlercodes/Default.asp?ID=800a0046

Allerdings gibt es noch viele Skripte für die Änderungen der Metabase. Informationsquellen dazu im Abschnitt Literatur.


Zugriff per Metabase-Editor
Der Metabase Editor können Sie unter folgender Adresse herunterladen:
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q232068&ID=kb;en-us;Q232068. Natürlich können Sie alles per Skript machen, aber wozu? Mit dem Metabase-Editor steht Ihnen ein sehr gutes Werkzeug zur Verfügung, übersichtlich und einfach in der Bedienung.

Der Metabase-Editor muss installiert werden, nach der Installation finden Sie diesen unter Start, Programme, Administrative Tools, MetaEdit. Die Einstellung von "AspAllowOutOfProcComponents" soll nun wie im Skript zuvor gezeigt auf true gesetzt werden, aber diesmal soll die Einstellung per Metabase-Editor vorgenommen werden. Entweder Sie suchen nun selbst nach diesem Eintrag, oder Sie lassen suchen. Dazu klicken Sie entweder oben Auf "Edit", "Find", oder Sie rufen das Suchfenster einfach auf per gleichzeitigem Tastendruck von strg & f. In "Find what" geben Sie nun AspAllowOutOfProcComponents ein. Nun wird im Verzeichnis "LM", "W3SVC" der Schlüssel "AspAllowOutOfProcComponents" angezeigt, darauf einen Doppelklick. Im Feld "Data" geben Sie jetzt die Zahl 1 an, klicken Sie dann auf OK. Fertig! Bevor Sie jetzt weitere Änderungen vornehmen empfehle ich Ihnen zuerst einmal eine Sicherung der Metabase anzulegen, wie das geht beschreibt das nächste Kapitel.


Backup - Sichern der Metabase
Änderungen an der Metabasis können bei falschen Eingaben Probleme erzeugen, zum Beispiel kann der IIS aufgrund von Einstellungsfehler nicht mehr starten. Daher sollten Sie vor Änderungen ein Backup anlegen. Das können Sie per Metabase-Editor durchführen, klicken Sie oben auf Metabase, Backup/Restore. Klicken Sie dann auf CreateBackup, das Backup finden Sie im Verzeichnis "C:\WINNT\system32\inetsrv\MetaBack". Falls Sie einen Einstellungsfehler gemacht haben, können Sie ein Backup auch über dieses Fenster wiederherstellen. Natürlich können Sie auch das ganze per Skript durchführen, ein Beispiel dafür:
1   
2
3
4
5
6
7
8
9
10
11
Dim objIIS, BackupFlags
Set objIIS = GetObject("IIS://LocalHost")

Const MD_BACKUP_SAVE_FIRST = 2
Const MD_BACKUP_FORCE_BACKUP = 4
Const MD_BACKUP_NEXT_VERSION = &HFFFFFFFF

BackupFlags= (MD_BACKUP_SAVE_FIRST or MD_BACKUP_FORCE_BACKUP)
objIIS.Backup "Metabase-Backups", MD_BACKUP_NEXT_VERSION, BackupFlags
set objIIS = nothing
Response.Write("Sicherung der Metabase erfolgreich.")


Tipp! Falls Sie Ihr gesamtes System per Backup sichern, sollten Sie immer ein aktuelles Backup für die Metabase bereithalten. Wenn Sie immer wieder Änderungen am IIS vornehmen, z.B. Zugriffsrechte, neue Virtuelle Verzeichnisse, dann ist ein aktuelles Backup der Metabase sehr wichtig. Wenn Sie ein älteres Backup Ihres Betriebssystem wiederherstellen müssen, brauchen Sie nicht mehr alle Einstellungen an der Metabase erneut durchführen, letzte Sicherung der Metabase wiederherstellen, fertig!


Weiterführende Literatur
Alles rund um die Metabase, ADSI & Co hier aufzuzeigen wäre viel zu umfangreich, daher möchte ich Ihnen noch eine weiterführende Literatur aufzeigen. Wenn Sie die Hilfedateien des IIS mit installiert haben, steht Ihnen schon eine sehr gute Dokumentation zur Verfügung. Die IIS-Hilfedateien können Sie aufrufen per Browser, geben Sie dazu folgenden Pfad an:
http://localhost/iishelp/iis/misc/default.asp
Nun sehen Sie die Startseite der IIS-Hilfedateien, die Seiten rund um die Metabase finden Sie unter dem folgenden Pfad:
http://localhost/iishelp/iis/htm/asp/aint1aud.htm

Bücher rund um die Metabase gibt es auch, nur handeln diese Bücher nicht nur um die Metabase sondern um andere Themen ebenso.
- Internet Information Server 5.0 von Gerry O´Brien, Markt & Technik. ISBN: 3827260191, Link zu edv-buechershop.de:
http://www.edv-buechershop.de/Detail.asp?ID=260192-1&Kategorie=&pid=1
Für Administration die viel mit dem IIS zu tun haben ist dieses Buch hervorragend geeignet.



 << Zum vorherigen Tipp 67:
Verzeichnisschutz im Eigenbau

 Zum nächsten Tipp 69 >>
CheckURL - URL prüfen

top top
© Copyright By Klaus Keller, 2001-2008 - Alle Rechte vorbehalten.