![当更新 bin 文件夹中的 dll 时,什么可以阻止 IIS7 重新启动 ASP.NET 应用程序?](https://linux22.com/image/553324/%E5%BD%93%E6%9B%B4%E6%96%B0%20bin%20%E6%96%87%E4%BB%B6%E5%A4%B9%E4%B8%AD%E7%9A%84%20dll%20%E6%97%B6%EF%BC%8C%E4%BB%80%E4%B9%88%E5%8F%AF%E4%BB%A5%E9%98%BB%E6%AD%A2%20IIS7%20%E9%87%8D%E6%96%B0%E5%90%AF%E5%8A%A8%20ASP.NET%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%EF%BC%9F.png)
我们在 MS Server 2008 和 IIS 7 上运行 ASP.NET 2.0。在最新版本中,应用程序池在 bin 文件夹发生更改后不会自动重新启动。它在我们的测试服务器上运行良好,但在实时服务器上却不行。该网站可以浏览,但运行逻辑与更新的 dll 的旧版本相同。
我们最近所做的更改之一是 bin 文件夹中的其中一个 dll 包含已与 ILMerge 合并的其他 dll。合并后的 dll 中包含 Interop.ADODB.dll 和 Interop.CDO.dll。更新的是合并后的 dll 的用户 dll。
尽管 bin 文件夹中的文件已发生更改,但什么可能阻止 IIS 重新启动应用程序池?
答案1
需要检查两件事。确保 /bin 文件夹所在的文件夹被标记为应用程序。如果不是,则不被视为应用程序文件夹。
如果您使用 UNC 路径来存储内容,或者拥有大量文件和文件夹,则文件更改通知 (FCN) 可能无法跟上。有一个注册表项可以更改 FCN 的行为,因此服务器管理员可能已经更改了它。