簡體   English   中英

bin 文件夾內任何文件的任何更改是否會導致 ASP.NET Web 應用程序中的應用程序回收?

[英]Does any change in any file inside bin folder cause application recycle in ASP.NET web application?

我知道在 ASP.NET Web 應用程序中,更改位於bin文件夾中的 DLL 文件會導致應用程序回收。

但我想知道,正如主題所暗示的那樣,是否有任何文件更改會導致這種行為? 此方案中是否包含簡單的文本文件?

那么子文件夾到bin文件夾呢? 以及它們的內容?

我知道我可以自己嘗試一下,但更重要的是,我正在為此尋找合適的文檔。

首先,我無法提供官方文檔的鏈接。 但是從我讀到的 bin 文件夾(包括子文件夾)中的每個更改都將導致 IIS 回收應用程序域。

突然的應用程序池回收

  1. 應用程序的 BIN 目錄中的任何修改

  2. 在任何配置文件中進行更改,如 Web.config 或其他(如果您的應用程序中有任何特定的配置文件,請說在名為 App_Config 的目錄中)。

  3. 在 APP_CODE 目錄中的源代碼文件中進行修改。 這可能會更改任何源代碼文件,或者從此目錄中添加或刪除文件。

  4. 在 Global.asax 文件中進行更改

  5. 在 Machine.config 文件中進行更改。

  6. 在 Web 應用程序的根目錄中進行任何修改。 這意味着動態創建文件/子目錄可能會導致應用程序池回收。

  7. 修改 App_WebReferences 目錄的 Web Services 引用。

  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/

不,更新 bin 文件夾中的 dll 文件不會導致回收。 至少不適用於 IIS 10 及更高版本上的 .NET 4.7

首先,什么是“回收”?

這是當 IIS 啟動w3wp進程的新實例並且舊的實例被“禮貌地”終止時(在完成所有使用IRegisteredObject注冊的請求和后台任務IRegisteredObject

當您更新 /bin 中的文件時會發生什么?

ASP.NET 執行熱重載:它檢測更新並從那時起使用新版本的 .dll 來請求新頁面。 即重新加載“應用程序域”。 但這發生在同一個w3wp進程中。 來源

我剛剛在 IIS 10 windows 2016 機器上檢查了這個:啟動任務管理器並重新安裝主 .dll 文件 - w3wp進程繼續運行,什么也沒發生。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM