Безпосередньо редагування файла конфігурації IIS 7 applicationHost.config


38

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

Однак, чи це стосується також файлу налаштувань applicationHost.config серверного рівня? (Зазвичай він розташований у C: \ windows \ system32 \ inetsrv \ config.) Конкретно, чи безпечно ретельно редагувати цей файл замість використання IIS Manager або утиліти командного рядка appcmd? Я не зміг знайти нічого в документації, яка б сказала, що це нормально чи не в порядку.

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

Відповіді:


51

Також перевірте цю відповідь звідси: Не вдається вручну редагувати applicationhost.config

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

Тож на практиці відбувається те, що ви відкриєте applicationhost.config за допомогою блокнота ++, внесете зміни, збережіть файл; але замість того, щоб перезаписати оригінал, ви зберігаєте 32-бітну його копію в Windows \ SysWOW64 \ inetsrv \ Config, тому ви не вносите змін до версії, яка фактично використовується IIS. Якщо ви перейдете до Windows \ SysWOW64 \ inetsrv \ Config, ви знайдете файл, який ви щойно зберегли.

Як обійти це? Простий - використовуйте 64-бітний текстовий редактор, наприклад звичайний блокнот, який постачається з Windows.


7
Врятував моє сало з цим ... яке дивне питання, яке змусило мене думати, що я збожеволіла. Спасибі!
brettwgreen

Це, здається, вже не є проблемою в Windows 10, тому це було дуже заплутано, коли це відбувалося на наших машинах Windows 7 та Windows Server 2012.
Дзян

Дякую, @Markive Це дуже заплутане на перший погляд питання.
Двомісний трюк Мобі

9

Зокрема, чи безпечно ретельно редагувати цей файл замість використання IIS Manager або утиліти командного рядка appcmd?

Так! Ви можете редагувати файл applicationhost.config безпосередньо, якщо ви адміністратор на апараті; це все, що роблять і інструменти адміністратора.

Якщо у вас виникли проблеми, принаймні 20 хвилин резервного копіювання конфігурації зберігаються в \ inetpub \ історії за замовчуванням.


Спасибі! Я не знаю, чому вони більше цього не документують.
лунадизайн


0

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


Згідно з stackoverflow.com/questions/8635884/… та коментарями, потрібне повне перезавантаження.
yoel halb
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.