Не могли б ви сказати мені, що саме відбувається, коли ми редагуємо Web.config (під час виконання) на сервері IIS?


11

Скажіть, що саме відбувається, коли ми редагуємо Web.config (під час виконання) на сервері IIS.

Чи автоматично перезапускається програма, яка залежить від web.config? Якщо так, чи можливо скасувати автоматичний перезапуск (або перезавантажити web.config)?


Ви можете спробувати увімкнути аудит доступу до файлів, щоб побачити, чи читає IIS web.config після його зміни.
Ерік Н

Відповіді:


10

ASP.NET AppDomain перезапускається кожного разу, коли ви торкаєтесь веб-конфігу. Можна вимкнути сповіщення про зміну файлів (FCN) для папки, але зазвичай це не найкраща ставка, якщо ви зможете в цьому допомогти. Якщо ви вимкнете це, це просто означає, що вам потрібно вручну переробити пул додатків, щоб зміни вступили в силу.

До IIS7, лише зміни ASP.NET призвели до переробки AppDomain, але з IIS7 та багатьма налаштуваннями, що живуть у web.config, це більш поширена проблема. тобто зміна документа за замовчуванням у IIS 7 Manager призведе до того, що AppDomain переробляє зараз.

В ідеалі вам просто потрібно зменшити швидкість зміни або іноді застосувати ці зміни до applicationHost.config (що не спричиняє переробку AppDomain), а не web.config.


4

Додаток, який використовує web.config, перезапуститься, коли ви його зміните, тут є додаткова інформація:

http://msdn.microsoft.com/en-us/library/ms178473.aspx

Я не знаю жодного способу, щоб не допустити цього (і я не впевнений, чому ви цього хочете - можливо, ви можете надати ще детальну інформацію про те, чого ви намагаєтесь досягти).


3

FYI - В ASP.NET 2.0 ви можете використовувати вбудовані в "Моніторинг стану здоров'я" події для реєстрації перезапуску програми разом із причиною перезавантаження. Це дасть вам змогу чітко зафіксувати, коли і як часто це відбувається. Це досягається шляхом редагування головного web.config для машини.

Для отримання додаткової інформації:

http://blogs.msdn.com/tess/archive/2006/08/02/asp-net-case-study-lost-session-variables-and-appdomain-recycles.aspx


3

[ОСТОРОЖНО ПРИМІТКА]

Я знаю, що це старе, але це все-таки заслуговує на увагу.

Скотт Форсайт - відповідь MVP невірна.

ASP.NET AppDomain перезапускається кожного разу, коли ви торкаєтесь веб-конфігу.

Це неправильно.


Відповідь Whisk є найбільш технічно правильною і повною відповіддю, оскільки включає посилання на MSDN, що включає одну важливу деталь:

Якщо потрібно перезапустити програму, ASP.NET обслуговуватиме всі очікувані запити з існуючого домену додатка та старих збірок перед перезапуском домену програми та завантаженням нових збірок.

Це особливо важливо, коли ми говоримо про веб-сервіси. Це вказує на те, що можливо нормально безпечно перезавантажуватися в середині дня.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.