Bezpośrednia edycja pliku konfiguracyjnego applicationHost.config IIS 7


38

Wiem, że IIS 7+ używa teraz plików konfiguracyjnych XML zamiast metabazy. Wiem również, że jeśli edytuję plik web.config dla danej witryny, IIS automatycznie wykrywa zmiany i implementuje wszelkie odpowiednie zmiany konfiguracji.

Czy jednak dotyczy to również pliku ustawień applicationHost.config na poziomie serwera? (Zwykle znajduje się w C: \ windows \ system32 \ inetsrv \ config.) W szczególności, czy bezpiecznie jest ostrożnie edytować ten plik zamiast używać Menedżera usług IIS lub narzędzia wiersza polecenia appcmd? Nie mogłem znaleźć w dokumentacji niczego, co powiedziałoby, że jest to w porządku lub nie jest w porządku, aby to zrobić.

Jestem ciekawy, ponieważ muszę zmienić powiązania dla wielu witryn z jednego adresu IP na inny. O wiele szybciej byłoby po prostu przeprowadzić globalne wyszukiwanie i zastąpić adres IP w pliku konfiguracyjnym zamiast ręcznie edytować kilkadziesiąt witryn w GUI.

Odpowiedzi:


51

Sprawdź również tę odpowiedź tutaj: Nie można ręcznie edytować applicationhost.config

Odpowiedź jest prosta, jeśli nie taka oczywista: win2008 jest 64-bitowy, notatnik ++ to 32-bitowy. Podczas nawigowania do Windows \ System32 \ inetsrv \ config za pomocą Eksploratora używasz 64-bitowego programu do znalezienia pliku. Po otwarciu pliku za pomocą notatnika ++ próbujesz go otworzyć za pomocą programu 32-bitowego. Pomyłka występuje, ponieważ zamiast powiedzieć, że to właśnie robisz, system Windows pozwala na otwarcie pliku, ale po zapisaniu ścieżka pliku jest przezroczyście odwzorowana na Windows \ SysWOW64 \ inetsrv \ Config.

Tak więc w praktyce zdarza się, że otwierasz applicationhost.config za pomocą notatnika ++, dokonaj zmiany, zapisz plik; ale zamiast nadpisywać oryginał zapisujesz jego 32-bitową kopię w Windows \ SysWOW64 \ inetsrv \ Config, dlatego nie wprowadzasz zmian w wersji, która jest faktycznie używana przez IIS. Jeśli przejdziesz do Windows \ SysWOW64 \ inetsrv \ Config, znajdziesz właśnie zapisany plik.

Jak obejść ten problem? Prosty - użyj 64-bitowego edytora tekstu, takiego jak zwykły notatnik dostarczany z systemem Windows.


7
Uratowałem mój bekon tym ... co za dziwny problem, który sprawił, że pomyślałem, że oszaleję. Dzięki!
brettwgreen 15.04.15

Nie wydaje się to już problemem w systemie Windows 10, więc było strasznie zagmatwane, gdy działo się to na naszych komputerach z systemem Windows 7 i Windows Server 2012.
Dzyann

Dzięki, @Markive. Na pierwszy rzut oka jest to bardzo mylące.
Moby's Stunt Double

9

W szczególności, czy bezpiecznie jest ostrożnie edytować ten plik zamiast używać Menedżera usług IIS lub narzędzia wiersza polecenia appcmd?

Tak! Możesz edytować plik applicationhost.config bezpośrednio, jeśli jesteś administratorem na komputerze; to wszystko, co robią także narzędzia administracyjne.

W razie problemów domyślnie przechowywane są co najmniej 20 minut kopii zapasowych konfiguracji w folderze \ inetpub \ history .


Dzięki! Nie wiem, dlaczego nie dokumentują tego więcej.
lunadesign


0

Kolejna przydatna informacja: podczas ręcznej edycji pliku applicationHost.config (podobnie jak narzędzia), tylko aplikacje, dla których zmieniłeś konfigurację, będą przetwarzane. Usługi IIS faktycznie wykonują migawkę konfiguracji dla każdej aplikacji i nie aktualizują jej, dopóki coś się nie zmieni dla tej aplikacji.


Według stackoverflow.com/questions/8635884/... i komentarzy wymagany jest pełny restart.
yoel halb
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.