3

Wir haben einen Webserver in Microsoft Azure gehostet. Es ist eine Windows Server 2008 R2 Datacenter Edition, 64 Bit.Applicationhost.config zeigt keine Änderungen

Für eine Website auf diesem Computer muss ich Änderungen an der Datei applicationhost.config vornehmen. Änderungen, die ich kürzlich an IIS vorgenommen habe, werden jedoch nicht in der Konfiguration angezeigt. Ich habe einen neuen Anwendungspool hinzugefügt und diese spezifische Website diesem Anwendungspool hinzugefügt. Ich habe die Website neu gestartet, das "Änderungsdatum" der Datei wurde aktualisiert, aber der Anwendungspool ist nicht vorhanden.

Momentan bearbeite ich die Datei in C:\Windows\System32\inetsrv\config, aber es gibt auch eine in C:\Windows\SysWOW64\inetsrv\Config, aber letzteres hat seit Monaten nicht aktualisiert.

Bin ich auf die falsche Datei? Werden Änderungen nicht sofort gespeichert? Muss ich IIS vollständig neu starten und nicht nur die relevante Website?

+1

Könnte es sein, dass die Änderungen zwischengespeichert werden? Ein vollständiger IISRESET sollte Sie wissen lassen, ob die Änderungen aktualisiert werden oder nicht. –

+0

Danke @RickStrahl Ich werde es versuchen wenn ich kann, der Server wird gerade benutzt. – MeanGreen

+0

http://www.beaconitservices.com/blog/2016/11/why-are-changes-to-my-applicaionhost-config-not-showing-up-in-iis/ Dieser Link hat eine Beschreibung zu Frage. –

Antwort

5

Die Lösung wurde IIS neu zu starten, wie @RickStrahl erwähnt, aber auch wenn es scheint Sie richtig öffnen und die applicationHost.config mit Notepad ++ oder Visual Studio auf dem Server installiert bearbeiten und .config Dateien öffnen konfiguriert, es ist nicht wirklich zeige dir den richtigen Inhalt!.

Ich installierte Notepad2 x64 und dann konnte ich den Anwendungspool sehen, den ich suchte.

Blutige brillantes Microsoft ... [

+1

Wie die von Sanket Patel gelinkte Artikulation sagt, ist das eigentliche Problem, dass die 32-Bit-Version, die auf einem 64-Bit-Rechner läuft, die offene Dateianforderung wie C: \ Windows \ SysWOW64 \ inetsrv \ Config \ applicationhost.config bekommt , das OS tut dies) und editiert daher nicht die Datei, die Sie denken, dass es ist. Wenn Sie die 64-Bit-Version von Notepad ++ verwenden, sollte es genauso funktionieren wie Notepad2. – jmoreno

+0

Ich erlebe mit diesem seltsamen Voodoo. Unter Verwendung des gleichen Notepad ++ für die gleiche Datei wird manchmal der richtige Inhalt geliefert. Manchmal sehr alte Inhalte. –

3

Das eigentliche Problem ist, dass es zwei inetsvr Verzeichnisse, ein für 32 Bit und eine andere für 64 Bit. Die 32-Bit Version, wahrscheinlich inaktiv und nicht aktualisiert, ist unter SysWOW64 !!!

Wenn Sie eine Datei unter %SystemDrive%\Windows\System32\inetsrv mit einer 32-Bit-Anwendung öffnen, wird Windows Sie ohne Warnung an eine sehr veraltete Datei umleiten (%SystemDrive%\Windows\SysWOW64\inetsrv). Interessant nein?

Mit einem 64-Bit-Editor wie Notepad ++ wird die "richtige" aktive Konfigurationsdatei geöffnet.

Der folgende Hack wird den (aktiven) 64-Bit-Speicherort, zugänglich von 32-Bit-Anwendungen (z. B. einige Visual Studio-Versionen).

cd /d "%SystemDrive%\Windows\SysWOW64\inetsrv" 
move Config Config.OLD 
mklink /d Config "%SystemDrive%\Windows\System32\inetsrv\Config"