Was ist IIS?
In diesem Beitrag werden wir einen genauen Blick auf IIS (Internet Information Services) werfen. Wir werden uns ansehen, was er tut und wie er funktioniert. Sie erfahren, wie Sie ihn unter Windows aktivieren können. Und nachdem wir uns mit der Verwaltung von IIS über die grafische Benutzeroberfläche vertraut gemacht haben, werden Sie sehen, wie Sie mit der Befehlszeilenschnittstelle arbeiten können. Legen wir los!
Was ist ein IIS-Webserver?
Ein IIS-Webserver läuft auf der Microsoft .NET-Plattform unter dem Betriebssystem Windows. Es ist zwar möglich, IIS auf Linux und Macs unter Verwendung von Mono auszuführen, aber das ist nicht empfehlenswert und wird wahrscheinlich instabil sein. (Es gibt andere Möglichkeiten, die ich später vorstellen werde). Es ist vielseitig und stabil und wird seit vielen Jahren in der Produktion eingesetzt. Die Version 10 ist die aktuellste. Sobald es installiert ist, sehen Sie diese Willkommensseite in Ihrem Browser. „Tervetuloa!“
Aber bevor wir uns mit den Feinheiten des IIS beschäftigen, sollten wir zunächst einen Webserver im allgemeinen Sinne definieren.
Was ist ein Webserver?
Das Internet ist gut. Und das Internet kann ohne Webserver nicht existieren. Aber was genau ist ein Webserver? Lassen Sie uns das abstrakt definieren, damit wir etwas Kontext dafür haben, wie IIS diese Rolle ausfüllt.
Ein Webserver ist ein Prozess zum Hosten von Webanwendungen. Der Webserver ermöglicht es einer Anwendung, Nachrichten zu verarbeiten, die über bestimmte TCP-Ports (standardmäßig) eingehen. Der Standardport für HTTP-Verkehr ist beispielsweise 80, der für HTTPS 443.
Wenn Sie eine Website in Ihrem Browser besuchen, geben Sie normalerweise die Portnummer nicht an, es sei denn, der Webserver ist so konfiguriert, dass er Datenverkehr über andere Ports als den Standardport empfängt. Wenn Sie http://www.example.com besuchen, wird Ihre Anfrage implizit an Port 80 gesendet. Sie können die Portnummer angeben, wenn Sie http://www.example.com:80 und https://www.example.com:443 für TLS (Transport Layer Security) wünschen.
Angenommen, die Standardkonfiguration und TLS sind für Ihre Webanwendung konfiguriert, empfängt der Webserver den gesamten eingehenden Datenverkehr an den Ports 80 und 443. Es hängt davon ab, was der Webserver mit dem Datenverkehr von dort macht. Es gibt zahllose Möglichkeiten, wie der Webserver diese Anfragen verarbeiten kann.
Wie verarbeitet IIS Webanfragen?
Die beiden Hauptprozessmodelle für Webserver sind entweder die Verarbeitung aller Anfragen in einem einzigen Thread oder die Erzeugung eines neuen Threads für jede Anfrage. Das Single-Thread-Modell (z. B. Node.js) verfügt zwar über einige Worker-Threads, verwendet diese aber in der Regel nur für bestimmte Aufgaben, wie den Zugriff auf das Dateisystem. Das „Thread-per-Request“-Modell, das IIS (und sein leichtgewichtiger Cousin IIS Express) verwendet, zieht für jede Anfrage einen Thread aus einem Thread-Pool.
Web-Server verarbeiten Anfragen in der Regel nach einem Anfrage-Antwort-Muster. Der Client sendet eine Anfrage und erhält eine Antwort, wenn alles in Ordnung ist. Das HTTP-Protokoll ist die allgegenwärtige Wahl bei der Kommunikation zwischen einem Client und einem Webserver über das Internet.
Funktionen
IIS ist reich an Funktionen. Am häufigsten wird IIS zum Hosten von ASP.NET-Webanwendungen und statischen Websites verwendet. Er kann auch als FTP-Server verwendet werden, WCF-Dienste hosten und erweitert werden, um Webanwendungen zu hosten, die auf anderen Plattformen wie PHP aufgebaut sind.
Es gibt integrierte Authentifizierungsoptionen wie Basic, ASP.NET und Windows auth. Letzteres ist nützlich, wenn Sie eine Windows-Active-Directory-Umgebung haben – Benutzer können automatisch mit ihrem Domänenkonto bei Webanwendungen angemeldet werden. Zu den weiteren eingebauten Sicherheitsfunktionen gehören TLS-Zertifikatsverwaltung und -bindung für die Aktivierung von HTTPS und SFTP auf Ihren Sites, Anforderungsfilterung für Whitelisting oder Blacklisting von Datenverkehr, Autorisierungsregeln, Anforderungsprotokollierung und ein umfangreicher Satz von FTP-spezifischen Sicherheitsoptionen.
Eine Schlüsselfunktion des IIS ist der Anwendungspool. Wir werden uns den Anwendungspool genauer ansehen müssen, da er eine entscheidende Komponente des IIS-Prozessmodells ist.
Eine unschätzbare Funktion ist die Fernverwaltung. IIS kann auch über die CLI oder mit PowerShell verwaltet werden. Sie können alles skripten, was großartig ist, wenn Sie die Macht mögen, die damit einhergeht.
Mittlerweile sollten Sie einen guten Eindruck von der Konfigurierbarkeit und Vielseitigkeit des IIS haben. Sie sollten auch wissen, dass er erweitert werden kann, um neben dem Hosting von ASP.NET-Anwendungen viele weitere Zwecke zu erfüllen. Durch die Erweiterung wird der IIS zu einem äußerst vielseitigen und stabilen Webserver für die Windows-Plattform. Schauen wir uns an, wie man IIS unter Windows 10 installiert. (Der gleiche Prozess gilt für Windows 7 und 8.)
IIS einrichten
Das als „installieren“ zu bezeichnen, wäre ein bisschen viel. Schließlich ist IIS eine Funktion von Windows. Was Sie wirklich tun müssen, ist, die Funktion zu aktivieren. In Windows 10 können Sie die Windows-Taste drücken und „turn win“ eingeben. Sie sollten die Option „Windows-Funktionen ein- oder ausschalten“ sehen.
Wählen Sie diese Option, um das Dialogfeld „Windows-Funktionen“ zu öffnen. Von hier aus können Sie alle möglichen zusätzlichen Funktionen aktivieren, einschließlich PowerShell 2.0, einen tiefen Verzeichnisbaum mit Optionen für Internetinformationsdienste (IIS) und ein Subsystem für Linux. (Ich muss sagen, dass letzteres für mich schon oft nützlich war, z. B. wenn eine Node-App einige Shell-Skripte als Teil des npm-Builds enthält).
Die Option für Internetinformationsdienste (IIS) ist diejenige, die wir wollen!
Ein einfacher Klick auf das entsprechende Kästchen bietet Ihnen einen guten Startpunkt. Möglicherweise möchten Sie jedoch tiefer einsteigen. Unter World Wide Web Services > Anwendungsentwicklungsfunktionen können Sie ASP.NET, CGI und das WebSocket-Protokoll aktivieren. Sie können jederzeit darauf zurückkommen, wenn Sie Anpassungen vornehmen müssen.
Um IIS auf Windows Server zu aktivieren, können Sie entweder die PowerShell oder den Server Manager verwenden, um die „Web Role (IIS)“ zu installieren. Details dazu finden Sie in dieser Anleitung.
Wenn Sie alle gewünschten IIS-Funktionen ausgewählt haben, klicken Sie auf OK und holen Sie sich eine frische Tasse Kaffee. Nach der Installation können Sie die IIS-GUI aufrufen, indem Sie „IIS“ in die Windows-Suche eingeben oder „inetmgr“ ausführen.
Die GUI
Bevor wir uns den Details zuwenden, möchte ich Ihnen eine kurze Einführung in den IIS-Manager geben. Ich habe die Bereiche, die von Interesse sind, hervorgehoben, weil dieses Ding ein ziemliches Durcheinander ist. Es ist etwas gewöhnungsbedürftig, aber es gibt ein paar Dinge, bei denen ich Ihnen helfen kann, wenn es darum geht, sich hier zurechtzufinden.
Zunächst einmal gibt es drei Fensterbereiche. Auf der linken Seite befinden sich die verbundenen Server. (Sie können sich auch mit entfernten Servern verbinden.) Im mittleren Bereich finden Sie alle Funktionen wie Anwendungssicherheit, Protokollierung, Filterung und Umleitung. Wenn Sie „Inhaltsansicht“ wählen, sehen Sie den Inhalt stattdessen hier in der Mitte. Auf der rechten Seite befindet sich der Aktionsbereich. Dieser ändert sich je nach ausgewähltem Kontext.
Ich bin mir nicht sicher, warum das kleine zusätzliche Symbol unten rechts dort ist, aber Sie können die Größe des Fensters auch dort unten ändern.
TIP: Sie können mit der rechten Maustaste auf die meisten Symbole klicken und das Kontextmenü verwenden, um die gängigsten Aktionen auszuführen.
Wenn Sie die „Verbindung“ im Verbindungsfenster erweitern, sollten Sie als erstes „Anwendungspools“ sehen, gefolgt von „Sites“. Auf diese werden wir uns in den nächsten beiden Abschnitten konzentrieren.
Anwendungspools…Was sind sie und wie funktionieren sie?
Hier ein Blick auf die Anwendungspools, die standardmäßig in IIS eingerichtet sind. Wie Sie sehen können, gibt es Kombinationen von v2.0 und v4.0 sowie von klassisch und integriert.
Die integrierte Pipeline unterscheidet sich von der klassischen Pipeline dadurch, dass ASP.NET in die Anforderungspipeline des IIS integriert ist. Im klassischen Modus mussten die Anfragen eine Pipeline für IIS und eine weitere für ASP.NET durchlaufen. Der integrierte Modus ist der bevorzugte Modus, seit IIS 7 mit Windows Server 2008 und Vista veröffentlicht wurde. Verwenden Sie den klassischen Modus nur, wenn Sie ihn unbedingt brauchen. Das Gleiche gilt für v2.0. Sie sind nur für Legacy-Support gedacht. Wenn Sie diese Anwendungspools nicht benötigen, können Sie sie auch einfach entfernen.
Ein einzelner Anwendungspool hat null bis viele Arbeitsprozesse (w3wp.exe), die zu einem bestimmten Zeitpunkt laufen. Die Worker-Prozesse führen Instanzen Ihrer Anwendung aus.
Anwendungspools erstellen
Klicken Sie im Bereich „Aktionen“ auf der rechten Seite des IIS-Fensters auf „Anwendungspool hinzufügen…“, um den Dialog aufzurufen. Es ist ziemlich einfach. In der Regel genügt es, einen Namen einzugeben und die Eingabetaste zu drücken oder auf „OK“ zu klicken.
Sie können einen Anwendungspool auch hinzufügen, indem Sie mit der rechten Maustaste auf den Knoten „Anwendungspools“ im Bereich „Verbindungen“ klicken. Der Tipp von vorhin hat sich bereits bewährt!
Anwendungspool-Benutzer
IIS erstellt für jeden Anwendungspool (gängige Bezeichnung für Anwendungspool) einen virtuellen Benutzer. Diese Worker-Prozesse laufen standardmäßig unter dem virtuellen Benutzer des Anwendungspools. Sie können unter einem anderen Benutzer (z. B. einem Domänenkonto) ausgeführt werden, wenn sie spezielle Berechtigungen benötigen.
Auch wenn ich die Anwendungspools vom Server entfernt habe, leben die virtuellen Benutzer weiter!
Diese virtuellen Benutzer erhalten immer noch ihre eigenen Standardordner, wie „Desktop“, „Musik“ und „Bilder“. Sie beanspruchen nicht so viel Speicherplatz (110 MB), aber sobald der App-Pool entfernt wird, sind diese Benutzerordner überflüssig und können gelöscht werden.
App-Pool-Recycling
Eine wichtige Funktion von App-Pools ist das Recycling. Standardmäßig werden App-Pools alle 1740 Minuten (29 Stunden) recycelt, und wenn sich die Konfigurationsdatei ändert. Sie können das Recycling nach Ihren Bedürfnissen konfigurieren. Das Recycling von App-Pools gibt den Speicher frei, der von den in einem App-Pool laufenden Anwendungen verbraucht wird. Recycling kann verhindern, dass ausufernde Prozesse den gesamten Arbeitsspeicher Ihres Servers verbrauchen.
Welche Dinge verwenden Speicher in Ihrem Prozess? Alles auf dem Stack und Heap – statische Variablen und Eigenschaften, alles im Speicher-Cache, alle Objekte, die von einem anderen Objekt referenziert werden, alle Speicherblöcke, die auf die Garbage Collection warten, Sie verstehen schon.
Sie können wählen, welche Ereignisse Sie protokollieren möchten (oder nicht). Wie Sie sehen können, werden nicht alle Optionen im vorherigen Dialog angezeigt – „Laufzeit-Recycling-Ereignisse“ scheinen nicht konfigurierbar zu sein. Das ist nicht ganz richtig.
Ein Recycling startet einen neuen Prozess und beendet den aktuellen Prozess. Der neue Prozess wird, wie zu erwarten, eine neue PID haben. Sie können dieses Verhalten sowie andere Recycling-Verhaltensweisen unter „Erweiterte Einstellungen…“ ändern. Tatsächlich können Sie in diesem Menü jede der Recycling-Konfigurationen bearbeiten. Der Dialog „Recycling…“ ist in dieser Hinsicht überflüssig. Allerdings können Sie hier das Recycling für Konfigurationsänderungen deaktivieren. Wahrscheinlich wollen Sie das aber nicht. Ihre laufende Anwendung würde die Konfigurationsaktualisierungen nicht erhalten.
Beachten Sie, dass „überlappendes Recyceln“ impliziert, dass es möglich ist, mehr als eine Instanz der Anwendung zu haben. Sie sollten dies nur deaktivieren, wenn Ihre Anwendung es erfordert. Das überlappende Recyceln verhindert Störungen, die auftreten würden, wenn das Recyceln darauf warten würde, dass der aktuelle Prozess keine Anfragen mehr hat, bevor der neue Prozess gestartet wird. Mit anderen Worten, es werden keine neuen Anfragen bearbeitet, bis die aktuellen Anfragen abgeschlossen sind oder die konfigurierbare Timeout-Periode verstrichen ist (standardmäßig 90 Sekunden).
Erweiterte Konfiguration
Es gibt viel zu viele App-Pool-Konfigurationen, um sie in diesem Beitrag im Detail zu wiederholen. Für den Moment muss ein kurzer Überblick genügen. Ich werde kurz einige Punkte zu den einzelnen Bereichen der „Erweiterten Einstellungen“ aufzählen, wie unten gezeigt.
- Die Einstellung „Allgemein“ ermöglicht Ihnen
- Ändern der .NET CLR Versionen
- Zulassen von 32-Bit-Anwendungen zulassen
- Pipeline-Modus ändern
- Länge der Warteschlange einstellen (standardmäßig 1000 Anfragen)
- Ausführung immer oder bei Bedarf einstellen
- Die Option „CPU“ umfasst
- Drosselung
- Prozessor-Affinität
- „Prozessmodell“ lässt Sie Einstellungen wählen für
- Identität
- Idle-Timeout
- Max Worker-Prozesse
- Gesundheitsüberwachung (Sie sollten dies lokal für die Fehlersuche ausschalten, da ein angehaltener Debugger nicht auf Pings reagiert)
- „Process Orphaning“ ist nützlich für die Fehlersuche bei nicht reagierenden Prozessen
- „Rapid-Fail Protection“ ist nützlich, wenn Sie die Reaktionen des Load Balancer auf Ausfälle konfigurieren möchten
Sites
„Sites“ ist der Knoten neben „Application Pools“ im Serverknoten des IIS-Managers. Hier können Sie Websites und FTP-Sites (falls installiert) hinzufügen und verwalten. Während Anwendungspools über ein Dialogfeld für erweiterte Einstellungen verfügen, haben Sites viel mehr Konfigurationsoptionen! Sites haben viele Funktionen, jede mit ihren eigenen Konfigurationen.
Diese Funktionen fallen unter drei Überschriften im IIS-Manager:
- ASP.NET (wenn Sie es installiert haben)
- IIS
- Verwaltung
Kontextmenü
Sie können zwischen „Funktionen“ und „Inhalt“ umschalten, wenn Sie eine Site ausgewählt haben. Sie können mit der rechten Maustaste auf die Site klicken und den Ordner über das Kontextmenü öffnen, indem Sie „Erkunden“ wählen. Über dieses Kontextmenü können Sie auch andere Dinge tun, z. B. Berechtigungen bearbeiten.
Damit werden eigentlich nur die Eigenschaften des Ordners der Site angezeigt. Von dort aus müssen Sie auf die Registerkarte „Sicherheit“ wechseln, um die Berechtigungen tatsächlich zu bearbeiten.
In typischer Windows-Manier gibt es mehrere andere Möglichkeiten, die Berechtigungen zu bearbeiten. Weitere Informationen zum Festlegen von Ordnerberechtigungen finden Sie in der Windows-Hilfe.
Über das Kontextmenü können Sie verschiedene allgemeine Aufgaben ausführen. Unter dem Punkt „Website verwalten“ können Sie die Website starten und stoppen, sie im Browser öffnen und zu den erweiterten Einstellungen gehen. Diese werden wir uns auf jeden Fall ansehen, aber zunächst sollten wir darüber sprechen, was Sie sehen, wenn Sie „Bindungen bearbeiten…“ wählen, das auch im Bereich „Aktion“ als „Bindungen…“ verfügbar ist.
Bindungen
Sie müssen eine Site-Bindung im Dialogfeld „Bindungen…“ hinzufügen, wenn Sie HTTPS für Ihre Site aktivieren. Sie können dort auch den Hostnamen und die Portnummern festlegen. Wenn Sie zusätzliche Bindungen für Ihre Website haben, können Sie diese hier ebenfalls hinzufügen. Vielleicht verwenden Sie die net.tcp- oder net.pipe-Bindungen (wenn Sie diese Funktionen auf dem Server hinzugefügt und für die Site aktiviert haben). Oder Sie können hier eine IP-Adresse angeben.
Es ist möglich, mehr als eine Site zu betreiben, die auf denselben Port hört. Dazu verwenden Sie verschiedene Hostnamen. Sie könnten zum Beispiel admin.example.com für Ihre Verwaltungsseite und blog.example.com für Ihren Blog verwenden. Der gesamte example.com-Verkehr würde an dieselbe IP-Adresse gehen (Load-Balancer/Server), aber IIS würde den Host-Header verwenden, um den Verkehr an die entsprechende Site zu leiten. Diese sind auch für White-Label-Anwendungen nützlich: acme.example.com, foo.example.com, bar.example.com.
Grundeinstellungen
„Grundeinstellungen…“ ist derselbe Dialog, den Sie beim ersten Einrichten der Website erhalten. Wahrscheinlich brauchen Sie nicht dorthin zu gehen, es sei denn, Sie wollen den Anwendungspool oder den Standort der Site ändern oder sich als ein anderer Benutzer statt als IUSR (pass thru) verbinden. Wenn Sie ein Dienstkonto für den Zugriff auf das Site-Verzeichnis verwenden müssen, können Sie im Dialogfeld „Site bearbeiten“ die Option „Verbinden als…“ wählen.
Hinweis: Sie sollten darauf achten, alle Verzeichnisse, die Sie im IIS verwenden, zu sichern. Sie können davon profitieren, wenn Sie lesen, wie das Standardverzeichnis inetpub gesichert wird.
Unterwebsites und virtuelle Verzeichnisse
Sie können mehrere Anwendungen und virtuelle Verzeichnisse unter einer Site hosten. Anwendungen können in ihren eigenen Anwendungspools laufen, virtuelle Verzeichnisse jedoch nicht. Wie unten dargestellt, habe ich eine Verwaltungsanwendung und ein virtuelles Blog-Verzeichnis unter Site2 eingerichtet. Auf sie kann über http://localhost/admin und http://localhost/blog zugegriffen werden. Beide reagieren mit eingebauten Fehlerseiten, es sei denn, es befindet sich etwas in den Verzeichnissen.
Die Quellverzeichnisse für Unteranwendungen und virtuelle Verzeichnisse müssen keine Unterverzeichnisse der übergeordneten Site sein. Sie können diese Verzeichnisse an einem beliebigen Ort ablegen. Möglicherweise möchten Sie einige gängige Webressourcen (Bilder oder JS-Dateien) einem relativen Pfad für mehrere Websites zuordnen. Virtuelle Verzeichnisse sind hierfür ideal.
Standard- und Fehlerdokumente
Wenn ein Benutzer das Stammverzeichnis Ihrer Website (www.example.com/) besucht, wird ihm ein Standarddokument angezeigt. Die Standarddokumente sind unten abgebildet. Sie können eigene Dokumente hinzufügen, Dokumente entfernen oder sie ganz deaktivieren. Wenn Sie sie deaktivieren, erhält der Benutzer eine hässliche 403-Fehlermeldung, es sei denn, Sie haben die Erlaubnis erteilt, Ordnerinhalte aufzulisten (nicht empfohlen). Es ist am besten, ein Standarddokument zu haben.
Ich habe ein Indexdokument in jedes Verzeichnis gelegt: die Site, die Anwendung und das virtuelle Verzeichnis.
- Site2
- Admin
- index.html
- Blog
- index.html
- index.html
- Admin
- http://localhost/ lädt das Standarddokument unter Site2/index.html
- http://localhost/admin/ lädt das Standarddokument unter Site2/Admin/index.html
- http://localhost/blog/ lädt das Standarddokument unter Site2/Blog/index.html
Wenn Sie sich Sorgen machen, dass IIS Speicher und CPU auf Ihrem Rechner beansprucht, dann lassen Sie es. Solange die Worker-Prozesse nicht laufen (und Anfragen mit hohem Verarbeitungsaufwand bearbeiten), ist er untätig. Wenn Sie eine hohe CPU-Auslastung feststellen, kann Ihnen diese Anleitung zur Fehlerbehebung helfen, vorausgesetzt, Sie verwenden ASP.NET.
CLI und Remote-Verwaltung
AppCmd.exe
AppCmd ist das integrierte CLI-Tool zur Konfiguration und Verwaltung von IIS. Sie können damit Sites und App-Pools erstellen, virtuelle Verzeichnisse verknüpfen und Konfigurationen bearbeiten. Schauen wir uns ein paar Dinge an, die es tun kann.
Zuallererst fügen Sie %systemroot%\system32\inetsrv\ zu Ihrem Pfad hinzu, damit Sie appcmd von einer Eingabeaufforderung an einem beliebigen Ort ausführen können.
Führen Sie die Eingabeaufforderung als Administrator aus.
setx PATH "%PATH%;%systemroot%\system32\inetsrv\"
Versuchen Sie die folgenden Befehle, um appcmd zu erkunden:
- Führen Sie appcmd /? um den Hilfetext zu sehen
- Sehen Sie, welche Anwendungen mit appcmd list app laufen
- Verwenden Sie appcmd list backup, um Backups Ihrer IIS-Konfiguration zu sehen
Add site
appcmd add site /name:"Dummy Site" /id:10 /bindings:http/*:81:
Nun listen Sie die Anwendungen wieder auf. Die neue Website, die Sie hinzugefügt haben, wird nicht angezeigt, da sie nicht als Anwendung betrachtet wird. Wenn Sie die grafische Benutzeroberfläche aufrufen und Ihre Websites aktualisieren, sehen Sie die neue Website, aber sie ist nicht mehr verfügbar. Wir müssen eine App mit appcmd hinzufügen.
appcmd add app /site.name:"Dummy Site" /path:"/"
Damit wird die App nur der Site im Stammverzeichnis hinzugefügt. Es wird eine App mit dem Namen „Dummy Site/“ erstellt. Wir müssen die App immer noch mit einem virtuellen Verzeichnis verknüpfen und dann auf einen physischen Pfad verweisen.
appcmd add vdir /app.name:"Dummy Site/" path:"/"appcmd set vdir "Dummy Site/" /physicalPath:"c:\inetpub\wwwroot"
Das ist die ausführliche Art, appcmd zu verwenden, um eine IIS-Site zu erstellen. Es gibt einen einfacheren Weg.
Der EZ-Weg
Sie können eine Menge Tastenanschläge beim Erstellen der Site sparen, wenn Sie den Parameter physicalPath im ersten Befehl setzen. Damit wird das Ganze in einem Rutsch erledigt:
appcmd add site /name:"Dummy Site" /id:10 /bindings:http/*:81: /physicalPath:"c:\inetpub\wwwroot"
Aber wenn man die anderen Befehle kennt, bekommt man eine bessere Vorstellung davon, wie eine IIS-Anwendung unter der Haube wirklich funktioniert. In der Vergangenheit habe ich appcmd im Post-Build-Skript von ASP.NET proj-Dateien verwendet, um sicherzustellen, dass die Site lokal auf neuen Entwicklungsrechnern eingerichtet wurde. Sie können auch eine Sicherung und Wiederherstellung der IIS-Konfiguration mit appcmd durchführen.
Aktualisierungen bereitstellen
Um Ihnen eine weitere Idee zur Verwendung von appcmd zu geben, sollten Sie Folgendes tun:
- Erstellen Sie einen Ordner „Sites“.
- Erstellen Sie einen Unterordner für jede Site.
- Versionen in Unterordnern unter jedem dieser Ordner bereitstellen.
- Neue Versionen bereitstellen.
- Mit appcmd die Site aktualisieren, um den neuen Ordner zu verwenden.
Eine App namens „Hello World“, die auf C:\Sites\HelloWorld\1.0.0 und einem neuen Build „1.0.1“, der in C:\Sites\HelloWorld\1.0.1 bereitgestellt wurde, können Sie, wenn es Zeit ist, live zu gehen, den folgenden Befehl verwenden, um die Site auf die neue Version umzustellen:
appcmd set vdir "Dummy Site/" /physicalPath:"c:\Sites\HelloWorld.0.1"appcmd recycle apppool /apppool.name:defaultapppool
Und wenn Sie Ihre Site zurücksetzen müssen, führen Sie Folgendes aus:
appcmd set vdir "Dummy Site/" /physicalPath:"c:\Sites\HelloWorld.0.0"appcmd recycle apppool /apppool.name:defaultapppool
Hier ist ein großartiger Leitfaden von Microsoft mit weiteren Informationen zur Verwendung von AppCmd.
IIS reset
„iisreset“ ist eine separate ausführbare Datei, die zum Stoppen, Starten, Neustarten von IIS oder zum Neustart des Computers (/REBOOT) verwendet wird. Sie können ihr den Parameter „Computername“ übergeben, damit sie den IIS auf einem anderen Computer steuert. Sie müssen das Programm als Administrator ausführen. Viele Entwickler und Systemadministratoren verwenden dies gerne nach einer Bereitstellung, und das ist auch keine schlechte Idee!
PowerShell
PowerShell verfügt über eine Reihe leistungsstarker Tools zur Verwaltung von IIS. Sie könnten den Befehl iisreset auch mit Invoke-Command -ComputerName „computername“ -ScriptBlock {iisreset} remote senden, vorausgesetzt, Sie erlauben den Remote-Aufruf beliebiger Befehle auf Ihren Servern – und das ist im Allgemeinen keine gute Idee!
Trotz meiner eigenen Sicherheitsbedenken beim Senden beliebiger Remote-Befehle mit PowerShell sind die Cmdlet für die IIS-Verwaltung wirklich nützlich für die Webserververwaltung im DevOps-Stil. Sie können diese Dokumentation für die IIS-Verwaltung mit PowerShell lesen, um eine Vorstellung davon zu bekommen, was sie tun kann.
Abschalten
Trotz all der Funktionen, Konfigurationen und Befehle, die wir in diesem Beitrag behandelt haben, haben wir nur an der Oberfläche gekratzt. Jede Funktion hat ihre eigenen Konfigurationen, und es gibt viele Erweiterungen, die durch die Installation der Web Platform Installer-Erweiterung hinzugefügt werden können.
Und damit schließen wir diesen Beitrag und den IIS-Server ab:
iisreset /stop
Mit APM, Server-Zustandsmetriken und der Integration von Fehlerprotokollen können Sie die Leistung Ihrer Anwendungen mit Stackify Retrace verbessern. Testen Sie noch heute Ihre kostenlose zweiwöchige Testversion