Влияет ли изменение в любом файле внутри папки bin на перезапуск приложения в веб-приложении ASP.NET?

Я знаю, что в веб-приложении ASP.NET изменение файла DLL, расположенного в bin папка вызывает перезапуск приложения.

Но мне интересно, поскольку субъект подразумевает, вызывают ли какие-либо изменения файла такое поведение? Простые текстовые файлы включены в этот сценарий?

А как насчет вложенных папок bin папка? А их содержимое?

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

1 ответ

Во-первых, я не могу предоставить ссылку на официальную документацию. Но из того, что я прочитал, каждое изменение в папке bin (включая подпапки) заставит IIS перезапустить домен приложения.

Внезапная переработка пула приложений

  1. Любые изменения в каталоге приложения BIN

  2. Внесение изменений в любой файл / файлы конфигурации, такие как Web.config или другие (если в вашем приложении есть какой-либо конкретный файл конфигурации, скажем, в каталоге с именем App_Config).

  3. Внесение изменений в файлы с исходным кодом в каталоге APP_CODE. Это может измениться в любых файлах с исходным кодом или добавить или удалить файлы из этого каталога.

  4. Внесение изменений в файл Global.asax

  5. Внесение изменений в файл Machine.config.

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

  7. Модификации для ссылок веб-сервисов каталога App_WebReferences.

  8. Изменение настроек безопасности любого каталога в корневом каталоге. (Например, указание прав на чтение для каждого или для любого другого конкретного пользователя или группы пользователей.)

Вот немного чтения:

  1. Что вызывает перезапуск пула приложений в IIS?
  2. http://christopherdeweese.com/blog2/post/beware-writing-to-the-bin-folder-in-iis-hosted-services
  3. Что делает IISReset?
  4. http://www.iis.net/ConfigReference/system.applicationHost/applicationPools/add/recycling
  5. Управление, настройка и настройка пулов приложений в IIS 7.0
  6. 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 - процесс продолжал работать, ничего не произошло.

Другие вопросы по тегам