Direktes Bearbeiten der IIS 7-Konfigurationsdatei applicationHost.config

38

Ich weiß, dass IIS 7+ jetzt XML-Konfigurationsdateien anstelle der Metabasis verwendet. Ich weiß auch, dass wenn ich eine web.config-Datei für eine bestimmte Site bearbeite, IIS die Änderungen automatisch erkennt und alle entsprechenden Konfigurationsänderungen implementiert.

Gilt dies jedoch auch für die Einstellungsdatei applicationHost.config auf Serverebene? (Die Datei befindet sich normalerweise in C: \ windows \ system32 \ inetsrv \ config.) Ist es sicher, diese Datei sorgfältig zu bearbeiten, anstatt den IIS-Manager oder das Befehlszeilendienstprogramm appcmd zu verwenden? Ich konnte in der Dokumentation nichts finden, was besagt, dass dies in Ordnung oder nicht in Ordnung ist.

Ich bin neugierig, weil ich die Bindungen für zahlreiche Sites von einer IP zu einer anderen ändern muss. Es wäre viel schneller, einfach global nach der IP-Adresse in der Konfigurationsdatei zu suchen und diese zu ersetzen, als ein paar Dutzend Sites in der GUI manuell zu bearbeiten.

lunadesign
quelle

Antworten:

50

Überprüfen Sie auch diese Antwort von hier: Die Datei applicationhost.config kann nicht manuell bearbeitet werden

Die Antwort ist einfach, wenn nicht so offensichtlich: win2008 ist 64bit, notepad ++ ist 32bit. Wenn Sie mit dem Explorer zu Windows \ System32 \ inetsrv \ config navigieren, verwenden Sie ein 64-Bit-Programm, um die Datei zu finden. Wenn Sie die Datei mit Notepad ++ öffnen, versuchen Sie, sie mit einem 32-Bit-Programm zu öffnen. Die Verwirrung tritt auf, weil Windows Ihnen nicht sagt, dass Sie dies tun, sondern ermöglicht, die Datei zu öffnen, aber wenn Sie sie speichern, wird der Pfad der Datei transparent Windows \ SysWOW64 \ inetsrv \ Config zugeordnet.

In der Praxis öffnen Sie also die Datei applicationhost.config mit Notepad ++, nehmen eine Änderung vor und speichern die Datei. Anstatt das Original zu überschreiben, speichern Sie eine 32-Bit-Kopie davon in Windows \ SysWOW64 \ inetsrv \ Config. Daher nehmen Sie keine Änderungen an der Version vor, die tatsächlich von IIS verwendet wird. Wenn Sie zu Windows \ SysWOW64 \ inetsrv \ Config navigieren, finden Sie die Datei, die Sie gerade gespeichert haben.

Wie kann man das umgehen? Einfach - Verwenden Sie einen 64-Bit-Texteditor, z. B. den normalen Notizblock, der mit Windows geliefert wird.

Markive
quelle
7
Ich habe damit meinen Speck gerettet ... was für ein seltsames Problem, das mich denken ließ, ich wäre verrückt geworden. Vielen Dank!
Brettwgreen
Dies scheint in Windows 10 kein Problem mehr zu sein, daher war es furchtbar verwirrend, als es auf unseren Windows 7- und Windows Server 2012-Computern passierte.
Dzyann
Danke, @Markive. Dies ist auf den ersten Blick ein sehr verwirrendes Thema.
Moby's Stunt Double
9

Ist es sicher, diese Datei sorgfältig zu bearbeiten, anstatt den IIS-Manager oder das Befehlszeilendienstprogramm appcmd zu verwenden?

Ja! Sie können die Datei applicationhost.config direkt bearbeiten, wenn Sie Administrator auf dem Computer sind. Das ist alles, was die Admin-Tools auch tun.

Wenn Sie in Schwierigkeiten geraten, werden standardmäßig mindestens 20 Minuten Konfigurationssicherungen in \ inetpub \ history gespeichert .

TristanK
quelle
Vielen Dank! Ich weiß nicht, warum sie das nicht mehr dokumentieren.
Lunadesign
3

Eine nette Einführung in die Datei applicationHost.config finden Sie gleich bei IIS.NET . Es gibt auch eine ausführliche Referenz für alle Elemente im IIS-Konfigurationsschema.

Es ist eigentlich ziemlich gut dokumentiert :-)

Mathias R. Jessen
quelle
0

Ein weiterer hilfreicher Hinweis: Wenn Sie die Datei applicationHost.config manuell bearbeiten (wie die Tools), werden nur die Anwendungen wiederverwendet, für die Sie die Konfiguration geändert haben. IIS erstellt für jede Anwendung eine Momentaufnahme der Konfiguration und aktualisiert sie erst, wenn sich für diese Anwendung etwas ändert.

Peter
quelle
Laut stackoverflow.com/questions/8635884/… und den Kommentaren ist ein vollständiger Neustart erforderlich.
yoel halb