Непосредственное редактирование файла конфигурации IIS 7 applicationHost.config

38

Я знаю, что IIS 7+ теперь использует файлы конфигурации XML вместо метабазы. Я также знаю, что если я отредактирую файл web.config для данного сайта, IIS автоматически обнаружит изменения и выполнит любые соответствующие изменения конфигурации.

Однако относится ли это также к файлу настроек applicationHost.config уровня сервера? (Обычно он находится в C: \ windows \ system32 \ inetsrv \ config.) В частности, безопасно ли тщательно редактировать этот файл вместо использования диспетчера IIS или утилиты командной строки appcmd? Я не смог найти ничего в документации, в которой говорилось, что все в порядке или нет.

Мне любопытно, потому что я должен изменить привязки для многочисленных сайтов с одного IP на другой. Было бы намного быстрее просто выполнить глобальный поиск и заменить IP-адрес в файле конфигурации вместо ручного редактирования нескольких десятков сайтов в графическом интерфейсе.

lunadesign
источник

Ответы:

51

Также проверьте этот ответ здесь: Невозможно вручную отредактировать applicationhost.config

Ответ прост, если не так очевиден: win2008 64-битный, notepad ++ 32-битный. Когда вы переходите к Windows \ System32 \ inetsrv \ config с помощью проводника, вы используете 64-битную программу для поиска файла. Когда вы открываете файл с помощью notepad ++, вы пытаетесь открыть его с помощью 32-битной программы. Путаница возникает из-за того, что вместо того, чтобы говорить, что это то, что вы делаете, Windows позволяет вам открыть файл, но когда вы сохраняете его, путь к файлу прозрачно отображается в Windows \ SysWOW64 \ inetsrv \ Config.

Поэтому на практике вы открываете applicationhost.config с помощью notepad ++, вносите изменения, сохраняете файл; но вместо перезаписи оригинала вы сохраняете его 32-битную копию в Windows \ SysWOW64 \ inetsrv \ Config, поэтому вы не вносите изменения в версию, которая фактически используется IIS. Если вы перейдете к Windows \ SysWOW64 \ inetsrv \ Config, вы найдете только что сохраненный файл.

Как обойти это? Просто - используйте 64-битный текстовый редактор, такой как обычный блокнот, который поставляется с окнами.

Markive
источник
7
Сохранил мой бекон этим ... какая странная проблема, которая заставляла меня думать, что я схожу с ума. Благодарность!
brettwgreen
Похоже, что это больше не проблема в Windows 10, так что это было очень странно, когда это происходило на наших машинах с Windows 7 и Windows Server 2012.
Дзянн
Спасибо, @Markive. Это очень запутанная проблема на первый взгляд.
Moby's Stunt Double
9

В частности, безопасно ли тщательно редактировать этот файл вместо использования IIS Manager или утилиты командной строки appcmd?

Да! Вы можете редактировать файл applicationhost.config напрямую, если вы являетесь администратором на компьютере; это все, что делают инструменты администратора.

Если у вас возникнут проблемы, по умолчанию в папке \ inetpub \ history хранится не менее 20 минут резервных копий конфигурации .

TristanK
источник
Благодарность! Я не знаю, почему они не документируют это больше.
lunadesign
3

Хорошее введение в файл applicationHost.config вы найдете прямо в IIS.NET . Также имеется подробный справочник для всех элементов в схеме конфигурации IIS.

Это довольно хорошо задокументировано на самом деле :-)

Матиас Р. Йессен
источник
0

Еще один полезный момент, который нужно знать: когда вы вручную редактируете файл applicationHost.config (как это делают инструменты), будут перезапускаться только те приложения, для которых вы изменили конфигурацию. IIS фактически делает снимок конфигурации для каждого приложения и не обновляет его, пока что-то не изменится для этого приложения.

Питер
источник
Согласно stackoverflow.com/questions/8635884/… и комментариям необходима полная перезагрузка.
Йоэл Хэлб