Я знаю, что IIS 7+ теперь использует файлы конфигурации XML вместо метабазы. Я также знаю, что если я редактирую файл web.config для данного сайта, IIS автоматически обнаруживает изменения и реализует любые соответствующие изменения конфигурации.
Однако относится ли это также к файлу настроек applicationHost.config уровня сервера? (Обычно он находится в C: \ windows \ system32 \ inetsrv \ config.) В частности, безопасно ли осторожно редактировать этот файл вместо использования диспетчера IIS или утилиты командной строки appcmd? Я не смог найти в документации ничего, что говорило бы о том, что это нормально или нельзя.
Мне любопытно, потому что мне нужно изменить привязки для многих сайтов с одного IP-адреса на другой. Было бы намного быстрее просто выполнить глобальный поиск и заменить IP-адрес в файле конфигурации вместо того, чтобы вручную редактировать несколько десятков сайтов в графическом интерфейсе.
Также проверьте этот ответ отсюда: Невозможно вручную изменить 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-битный текстовый редактор, например обычный блокнот, который поставляется с Windows.
В частности, безопасно ли внимательно редактировать этот файл вместо использования диспетчера IIS или утилиты командной строки appcmd?
Да! Вы можете редактировать файл applicationhost.config напрямую, если вы являетесь администратором на машине; это все, что делают инструменты администратора.
Если у вас возникнут проблемы, не менее 20 минут резервных копий конфигурации хранятся в \ inetpub \ история по умолчанию.
Вы найдете хорошее введение в файл applicationHost.config прямо по адресу IIS.NET. Также есть подробный справочник для всех элементов в схеме конфигурации IIS.
На самом деле это довольно хорошо задокументировано :-)
Еще один полезный момент: когда вы вручную редактируете файл applicationHost.config (как это делают инструменты), будут повторно использоваться только те приложения, для которых вы изменили конфигурацию. IIS фактически делает снимок конфигурации для каждого приложения и не обновляет его, пока что-то не изменится для этого приложения.