我习惯让IIS在任何“密钥”文件发生变化时自动重置网站(例如bin文件夹中的DLL或更改为web.config)。因此,每当我使用VS2012“发布”网站时 - 目标IIS站点(即使它位于另一台服务器上)总是重新启动,以便可以进行额外的测试。
由于某种原因,本周我正在做的一个项目不是这样做的。我可以完全删除并重新发布该站点 - 然而IIS继续提供“旧”内容,直到我回收相关的AppPool。它在我回收AppPool时可靠地更新 - 并且在我这样做之前可靠地不会更新(看起来无论磁盘上有哪些文件)。
就好像它正在缓存我的整个ASP.NET 3.5网站。我已经使用IIS近20年了,我从来没有看到过这样的行为。
有任何建议/想法吗?
答案 0 :(得分:1)
此语句允许您以编程方式回收AppDomain(类似于回收整个AppPool,但仅涉及当前应用程序,因此其他任何内容都不受影响)
HttpRuntime.UnloadAppDomain();
我通常#if(DEBUG)
在我的项目中,所以它不会脱离开发环境。