IIS 8.5提供旧文件

时间:2016-04-17 02:03:56

标签: asp.net caching iis

我在Windows Server 2012 IIS 8.5上有一个clickonce应用程序。我最近将它更新为新版本,它工作正常,除了第二个网页用来链接它的一个网址。它直接链接到.application文件,当我使用该链接时,我获得该文件的2.1.0.10版本,而不是服务器版本3.1.0.1的版本。

只有在使用该链接时,其他网址的服务器才是正确的文件。我甚至停止了两台服务器上的网站(负载均衡),链接仍以某种方式下载旧文件。

我在IIS中的输出缓存设置下关闭了缓存和内核缓存,我将Common HTTP Response Headers立即设置为Expire Web Content,但它仍然提供旧文件,即使它不再存在。我有一个网址重写规则,该特定网址重定向到一个有效的网站,但我仍然下载旧文件。

我重启了IIS和服务器本身,没有任何改变。然后我尝试将文件复制到新文件夹并在IIS中创建新站点。我复制了绑定并停止了旧网站和应用程序池。仍然可以获得旧文件。

任何人都可以帮我弄清楚IIS发生了什么吗?即使网站停止,它如何提供不存在的文件?我怎样才能让它更新?

3 个答案:

答案 0 :(得分:7)

我遇到了同样的问题并尝试了这里提到的所有内容(以及其他地方!),最后发现原因是IIS压缩缓存!

在IIS控制台上,单击网站,然后单击“压缩”,并取消选中启用静态内容压缩

这应该可以解决问题。

答案 1 :(得分:0)

如果网络服务器已停止,则可能会提供此文件'来自浏览器的缓存。

您是否尝试过清除浏览器的缓存?如果这不起作用,则可能值得完全重新启动IIS服务,或者,如果失败,将网站的wwwroot目录移动到其他位置,并重新部署最新版本的网站,或者只是重命名.application文件并重新部署?

这类似于在Visual Studio中清理和重建项目。

答案 2 :(得分:0)

最终发现这是由负载均衡器缓存结果设置引起的。我们关闭了这个设置,现在不再有问题了。