.Net macht das für uns tatsächlich sehr gut. FCL bietet viele Kurse an, die uns dabei helfen, diese Arbeit abzuschließen, was unsere Entwicklungsarbeit sehr einfach und angenehm macht. Die Programmierung zur Steuerung von IIS ist eigentlich sehr einfach. Wie ASP muss .Net ADSI verwenden, um IIS zu betreiben, aber zu diesem Zeitpunkt benötigen wir GetObject nicht mehr, da .Net uns neue Dinge mit leistungsfähigeren Funktionen bietet.
die
uns den Zugriff auf Active Directory ermöglichen. Diese Klassen ermöglichen uns den Betrieb von IIS, LDAP, NDS und WinNT
Sprechen Sie hier über die Steuerung von IIS. Wenn wir IIS betreiben, betreiben wir normalerweise virtuelle Verzeichnisse, daher werde ich dies als Hauptinhalt auflisten.
Zunächst müssen wir die hierarchische Struktur von IIS verstehen. Das Folgende ist ein Bild, das ich aus dem Ausland gefunden habe und das die hierarchische Struktur von IIS sehr gut erklärt:
[htmChina:Image id=Image1|12][/htmChina:Image]
Um die Steuersyntax von IIS zu verstehen, müssen wir die obige Abbildung verstehen und die hierarchische Struktur der IIS-Metadaten (Metabase) verstehen. Jeder Knoten im Diagramm wird als Schlüssel bezeichnet, und jeder Schlüssel kann einen oder mehrere Werte enthalten, die wir als Eigenschaften bezeichnen. Der Schlüssel in den IIS-Metadaten stimmt mit den Elementen in den Metadaten überein Werte in den Daten wirken sich auf die Einstellungen in IIS aus. Dies ist der Grundgedanke und Kern unserer Programmierung.
Darüber hinaus müssen Sie auch das Konzept des Schemas verstehen. Es stellt den Namen der Architektur in IIS dar, d. h. Sie können den Typ des Schlüssels in IIS-Metadaten verstehen, insbesondere den Typ jedes Knotens. Wir wissen, dass es in IIS virtuelle Verzeichnisse, normale Verzeichnisse und Dateien gibt. Dies sind alles Elemente von IIS, und die Bezeichnung, die sie unterscheidet, ist Schema. Das Schema des virtuellen Verzeichnisses ist beispielsweise „IIsVirtualDir“ und das normale Verzeichnis ist „IIsWebDir“. Auf diese Weise weiß IIS beim Hinzufügen oder Löschen von Verzeichnissen, ob wir ein virtuelles Verzeichnis oder ein normales Verzeichnis hinzufügen.
Das Erstellen eines virtuellen Verzeichnisses „
DirectoryEntry“ ist ein großartiges Geschenk, das uns .Net macht. Wir kennen seine Funktion schon durch den Namen – Verzeichniseintrag. Jeder, der ADSI verwendet hat, weiß, dass wir beim Betrieb von IIS und WinNT auch ihren Pfad angeben müssen. Beim Betrieb von IIS lautet das Format dieses Pfads:
IIS://ComputerName/Service/Website/Directory
ComputerName: das heißt, der Betriebspfad server Der Name kann ein Name oder eine IP sein. Der am häufigsten verwendete Name ist localhost.
Dienst: Der Server, der in IIS betrieben wird. Wir betreiben hauptsächlich die Webfunktion von IIS. Wenn es sich um FTP handelt, sollte es „MSFTPSVC“ sein.
Website: Ein IIS-Dienst kann viele Sites umfassen. Dies ist die Site, die zum Einrichten von Vorgängen verwendet wird. Sein Wert ist eine Zahl, der Standardwert ist 1 und gibt die Standardsite an. Wenn es andere gibt, beginnen Sie bei 1 und so weiter.
Verzeichnis: Es ist unnötig zu erwähnen, dass es sich um den Namen des Verzeichnisses für den Betrieb handelt. Das oberste Verzeichnis einer Site ist im Allgemeinen „ROOT“, und andere Verzeichnisse sind ihre untergeordneten Verzeichnisse.
Zuerst erhalten wir das Verzeichnis der obersten Ebene (Stammverzeichnis) einer Site:
DirectoryEntry rootfolder = new DirectoryEntry("IIS://localhost/W3SVC/1/ROOT");
Wenn beim Erstellen dieses Objekts keine Ausnahme auftritt, bedeutet dies dass dieses Verzeichnis real existiert.
Fügen wir ein neues virtuelles Verzeichnis hinzu. Beispielsweise möchten wir „Aspcn“ hinzufügen:
DirectoryEntry newVirDir = rootfolder.Children.Add("Aspcn", "IIsWebVirtualDir");
newVirDir.Invoke("AppCreate",true);
newVirDir.CommitChanges();
rootfolder.CommitChanges();
Die Idee, ein Verzeichnis zu erstellen, ist sehr einfach, nämlich das Hinzufügen eines weiteren Datensatzes zu einer Teilmenge des Stammverzeichnisses (rootfolder.Children). Hier wird die Add-Methode in der DirectoryEntries-Klasse verwendet. Sie gibt einen DirectoryEntry zurück Ein neu hinzugefügtes Verzeichnis ist der Name des virtuellen Verzeichnisses und der zweite der Klassenname des Schemas, um den Typ des hinzugefügten Verzeichnisses anzugeben. Verwenden Sie dann die Invoke-Methode von DirectoryEntry, um die „AppCreate“-Methode in ADSI aufzurufen und das Verzeichnis tatsächlich zu erstellen (es scheint, dass das Verzeichnis ohne diesen Schritt erfolgreich erstellt werden kann, aber aus Sicherheitsgründen sollte es jeder verwenden) und Rufen Sie schließlich das Neue auf. Die CommitChanges-Methode des Stammverzeichnisses bestätigt diesen Vorgang.
Beim Erstellen eines neuen Verzeichnisses können wir gleichzeitig auch den Attributen dieses Verzeichnisses Werte zuweisen. Meine praktische Erfahrung zeigt jedoch, dass es am besten ist, dies nicht zu tun, wenn wir beim Erstellen eines neuen Verzeichnisses Werte zuweisen , es wird viele Attribute geben, die nicht erfolgreich zugewiesen werden können. Beispielsweise stellen wichtige Attribute das Pfadattribut des Verzeichnisses dar. Daher empfiehlt Feidao, dass Sie zuerst das Verzeichnis erstellen und dann Werte zuweisen, also die Verzeichnisinformationen aktualisieren.
Aktualisieren Sie das virtuelle Verzeichnis
. Ich glaube, jeder ist mit IIS vertraut und versteht einige wichtige Einstellungen in IIS, z. B. lesbar (AccessRead), beschreibbar (AccessWrite), ausführbar (AccessExecute) usw. Dies kann erreicht werden, indem der Properties-Eigenschaftssammlung von DirectoryEntry Werte zugewiesen werden. Die Zuweisung kann auf zwei Arten erfolgen:
Die erste besteht darin, die Add-Methode der Properties-Auflistung aufzurufen, z. B.:
dir.Properties["AccessRead"].Add(true);
die zweite darin, dem ersten Indexwert einen Wert zuzuweisen :
dir. Properties["AccessRead"][0] = true;
Beide Methoden sind möglich. Es hängt von Ihren Vorlieben ab.
Bevor wireinen
Wert zuweisen, müssen wir noch das zuzuweisende Ziel bestimmen:) Hier verwenden wir die Find-Methode der DirectoryEntries-Klasse, wie zum Beispiel:
DirectoryEntry de = rootfolder.Children.Find("Aspcn", "IIsVirtualDir");
gefunden, wir Es ist bereit für den Einsatz. Achten Sie darauf, beim Zuweisen von Werten genau hinzusehen. In einem virtuellen Verzeichnis können viele Attributwerte vorhanden sein, und Sie können viele davon überprüfen. . : (Es gibt zu viele, und ich werde sie nicht wiederholen. Sie können sie auf der Website von Microsoft überprüfen:)
Die
am häufigsten verwendeten sind: AccessRead, AccessWrite, AccessExecute, AccessScript, DefaultDoc, EnableDefaultDoc,
Path
Das virtuelle Verzeichnis ist auch ganz einfach: Suchen Sie einfach das virtuelle Verzeichnis, das Sie löschen möchten, und rufen Sie dann die AppDelete-Methode auf.
DirectoryEntry de = rootfolder.Children.Find("Aspcn","IIsVirtualDir");
de.Invoke("AppDelete",true);
rootfolder.CommitChanges();
Eine andere Methode besteht darin, die Löschmethode des Stammverzeichnisses aufzurufen.
object[] paras = neues Objekt[2];
paras[0] = "IIsWebVirtualDir"; //Zeigt an, dass es sich bei der Operation um ein virtuelles Verzeichnis handelt
paras[1] = "Aspcn";
rootfolder.Invoke("Delete",paras);
rootfolder.CommitChanges();