1

我习惯于在网站的任何“关键”文件更改(例如 bin 文件夹中的 DLL 或 web.config 更改)时让 IIS 自动重置网站。因此,每当我使用 VS2012“发布”网站时——目标 IIS 网站(即使它在另一台服务器上)总是会自行重启,以便进行额外的测试。

出于某种原因,我本周正在进行的一个项目没有这样做。我可以完全删除并重新发布该站点——但 IIS 会继续提供“旧”内容,直到我回收相关的 AppPool。当我回收 AppPool 时它可靠地更新 - 并且在我这样做之前不会可靠地更新(似乎不管磁盘上的文件是什么)。

就好像它正在缓存我的整个 ASP.NET 3.5 网站。我已经使用 IIS 将近 20 年了,我从未见过它有这样的行为。

有什么建议/想法吗?

4

1 回答 1

1

此语句允许您以编程方式回收 AppDomain(类似于回收整个 AppPool,但仅涉及当前应用程序,因此其他任何内容都不会受到影响)

HttpRuntime.UnloadAppDomain();

我通常#if(DEBUG)在我的项目中使用它,因此它不会脱离开发环境。

于 2013-04-10T15:10:02.023 回答