【问题标题】:Does any change in any file inside bin folder cause application recycle in ASP.NET web application?bin 文件夹内的任何文件的任何更改是否会导致 ASP.NET Web 应用程序中的应用程序回收?
【发布时间】:2012-04-05 20:45:49
【问题描述】:

我知道在 ASP.NET Web 应用程序中,更改位于 bin 文件夹中的 DLL 文件会导致应用程序回收。

但我想知道,正如主题所暗示的那样,任何文件更改是否会导致这种行为?这种情况下是否包含简单的文本文件?

那么bin 文件夹的子文件夹呢?以及它们的内容?

我知道我可以自己尝试一下,但更重要的是,我正在为此寻找合适的文档。

【问题讨论】:

  • @BarryKaye web.config 文件不在bin 文件夹中。

标签: asp.net web-applications bin application-restart


【解决方案1】:

首先,我无法提供官方文档的链接。但是从我读到的 每个 bin 文件夹(包括子文件夹)中的更改将导致 IIS 回收应用程序域。

突然的应用程序池回收

  1. 应用程序的 BIN 目录中的任何修改

  2. 在任何配置文件中进行更改,例如 Web.config 或其他文件(如果您的应用程序中有任何特定的配置文件,例如在名为 App_Config 的目录中)。

  3. 在 APP_CODE 目录中的源代码文件中进行修改。这可能会更改任何源代码文件,或者在此目录中添加或删除文件。

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

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

  6. 在 Web 应用程序的根目录中进行任何修改。这意味着动态创建文件/子目录会导致应用程序池回收。

  7. App_WebReferences目录下Web服务引用的修改。

  8. 修改根目录中任何目录的安全设置。 (例如为每个人或任何其他特定用户或用户组指定读取安全权限。)

这里有一些阅读:

  1. What causes an application pool in IIS to recycle?
  2. http://christopherdeweese.com/blog2/post/beware-writing-to-the-bin-folder-in-iis-hosted-services
  3. What does an IISReset do?
  4. http://www.iis.net/ConfigReference/system.applicationHost/applicationPools/add/recycling
  5. Managing, Tuning, and Configuring Application Pools in IIS 7.0
  6. http://varunvns.wordpress.com/2011/07/04/application-pool-restarts/

【讨论】:

  • 把app_offline.htm放在主目录会导致Application Poll Recycling吗?
  • @Imran,以一种演讲者的方式 - 因为它停止了应用程序!您需要删除该文件才能重新启动应用程序。
  • App_Config 是真的吗?
  • 这太疯狂了!
【解决方案2】:

不,更新 bin 文件夹中的 dll 文件不会导致回收。至少在 IIS 10 及更高版本上没有 .NET 4.7

首先,什么是“回收”?

当 IIS 启动一个新的 w3wp 进程实例并且旧的实例被“礼貌地”终止(在完成所有使用 IRegisteredObject 注册的请求和后台任务之后)

更新 /bin 中的文件时会发生什么?

ASP.NET 进行热重载:它检测到更新并从那时起将新版本的 .dll 用于新页面请求。 IE。重新加载“应用程序域”。但这发生在同一个w3wp 进程中。 (source)

我刚刚在 IIS 10 windows 2016 机器上检查了这一点:启动任务管理器并替换主 .dll 文件 - w3wp 进程继续运行,没有任何反应。

【讨论】:

    猜你喜欢
    • 2013-11-25
    • 1970-01-01
    • 1970-01-01
    • 2022-07-01
    • 1970-01-01
    • 2011-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多