我知道在ASP.NET Web应用程序中,更改位于bin
文件夹中的DLL文件会导致应用程序回收。
但我想,正如主题所暗示的那样,任何文件更改是否会导致此类行为?这个场景中是否包含简单的文本文件?
那么bin
文件夹的子文件夹呢?他们的内容?
我知道我可以自己尝试一下,但更重要的是,我正在为此寻找合适的文档。
答案 0 :(得分:38)
首先,我无法提供官方文档的链接。但是从我读过的 bin文件夹(包括子文件夹)中的每次更改都将导致IIS回收应用程序域。
突然的应用程序池回收
应用程序的BIN目录中的任何修改
在任何配置文件中进行更改,例如Web.config或其他配置文件(如果您的应用程序中有任何特定的配置文件,请在名为App_Config的目录中说明。)
在APP_CODE目录中的源代码文件中进行修改。这可能会更改任何源代码文件,或添加或删除此目录中的文件。
在Global.asax文件中进行更改
在Machine.config文件中进行更改。
在Web应用程序的根目录中进行任何修改。这意味着即时创建文件/子目录可能会导致应用程序池回收。
对App_WebReferences目录的Web服务引用的修改。
修改根目录中任何目录的安全设置。 (例如为每个人或任何其他特定用户或用户组指定读取安全权限。)
这里有一些阅读:
答案 1 :(得分:1)
NOPE,更新bin文件夹中的dll文件不会导致回收。至少不是在IIS 10及更高版本上使用.NET 4.7
这是启动w3wp
流程的新实例,而旧实例被“礼貌地”终止(在完成向IRegisteredObject
注册的所有请求和后台任务之后)
ASP.NET进行热重载:它检测更新并从此开始使用.dll的新版本进行新页面请求。但这是在同一w3wp
过程中发生的。 (source)
我刚刚在IIS 10 Windows 2016计算机上进行了检查:启动了任务管理器并重新放置了主.dll文件-该进程一直在运行,什么也没发生。