Влияет ли изменение в любом файле внутри папки bin на перезапуск приложения в веб-приложении ASP.NET?
Я знаю, что в веб-приложении ASP.NET изменение файла DLL, расположенного в bin
папка вызывает перезапуск приложения.
Но мне интересно, поскольку субъект подразумевает, вызывают ли какие-либо изменения файла такое поведение? Простые текстовые файлы включены в этот сценарий?
А как насчет вложенных папок bin
папка? А их содержимое?
Я знаю, что могу попробовать сам, но что более важно, я ищу соответствующую документацию для этого.
1 ответ
Во-первых, я не могу предоставить ссылку на официальную документацию. Но из того, что я прочитал, каждое изменение в папке bin (включая подпапки) заставит IIS перезапустить домен приложения.
Внезапная переработка пула приложений
Любые изменения в каталоге приложения BIN
Внесение изменений в любой файл / файлы конфигурации, такие как Web.config или другие (если в вашем приложении есть какой-либо конкретный файл конфигурации, скажем, в каталоге с именем App_Config).
Внесение изменений в файлы с исходным кодом в каталоге APP_CODE. Это может измениться в любых файлах с исходным кодом или добавить или удалить файлы из этого каталога.
Внесение изменений в файл Global.asax
Внесение изменений в файл Machine.config.
Внесение любых изменений в корневой каталог веб-приложения. Это означает, что создание файлов / подкаталогов на лету может привести к повторному использованию пула приложений.
Модификации для ссылок веб-сервисов каталога App_WebReferences.
Изменение настроек безопасности любого каталога в корневом каталоге. (Например, указание прав на чтение для каждого или для любого другого конкретного пользователя или группы пользователей.)
Вот немного чтения:
- Что вызывает перезапуск пула приложений в IIS?
- http://christopherdeweese.com/blog2/post/beware-writing-to-the-bin-folder-in-iis-hosted-services
- Что делает IISReset?
- http://www.iis.net/ConfigReference/system.applicationHost/applicationPools/add/recycling
- Управление, настройка и настройка пулов приложений в IIS 7.0
- http://varunvns.wordpress.com/2011/07/04/application-pool-restarts/
НЕТ, обновление файла dll в папке bin НЕ вызывает повторного использования. По крайней мере, не с.NET 4.7 на IIS 10 и новее
Во-первых, что такое "переработка"?
Это когда новый экземпляр
w3wp
процесс запускается, а старый "вежливо" завершается (после завершения всех запросов и фоновых задач, зарегистрированных с
IRegisteredObject
)
Что происходит, когда вы обновляете файл в / bin?
ASP.NET выполняет горячую перезагрузку: он обнаруживает обновление и с этого момента использует новую версию DLL для запросов новых страниц. Но это происходит в том же
w3wp
процесс. (источник)
Я только что проверил это на машине IIS 10 с Windows 2016: запустил диспетчер задач и перепрограммировал основной файл.dll - процесс продолжал работать, ничего не произошло.