Назад | Перейти на главную страницу

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

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

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

Домен приложений ASP.NET перезапускается всякий раз, когда вы «касаетесь» web.config. Можно отключить уведомление об изменении файла (FCN) для папки, но обычно это не лучший вариант, если вы можете с этим помочь. Если вы отключите его, это просто означает, что вам нужно вручную переработать пул приложений, чтобы изменения вступили в силу.

До IIS7 только изменения ASP.NET вызывали перезапись AppDomain, но с IIS7 и многими настройками, хранящимися в web.config, это более распространенная проблема. т.е. изменение документа по умолчанию в диспетчере IIS 7 приведет к перезапуску этого домена приложения.

В идеале вам просто нужно снизить частоту изменений или иногда применять изменения к applicationHost.config (что не приводит к повторному использованию AppDomain), а не к web.config.

Приложение, использующее web.config, перезапустится, когда вы его измените, здесь есть дополнительная информация:

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

Я не знаю никакого способа предотвратить это (и я не уверен, зачем вам это нужно - возможно, вы можете предоставить более подробную информацию о том, чего вы пытаетесь достичь).

К вашему сведению. В 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

[ТОЛЬКО ПРИМЕЧАНИЕ]

Я знаю, что это старый, но это все же стоит отметить.

Скотт Форсайт - ответ MVP это неверно.

Домен приложений ASP.NET перезапускается всякий раз, когда вы «касаетесь» web.config.

Это не верно.


Взбить ответ является наиболее технически правильным и полным ответом, поскольку он включает ссылка на MSDN это включает одну важную деталь:

Когда требуется перезапуск приложения, ASP.NET будет обслуживать все ожидающие запросы из существующего домена приложения и старых сборок перед перезапуском домена приложения и загрузкой новых сборок.

Это особенно важно, когда мы говорим о веб-сервисах. Это указывает на то, что можно безопасно выполнить перезагрузку в середине дня.