【发布时间】:2015-08-20 19:36:15
【问题描述】:
我有一个随机发生的问题,即当我对 ASP 页面进行更改时 IIS Express 无法识别。它会提供页面的先前版本。
我可以通过重新编辑页面、进行少量更改、然后撤消更改并重新保存文件来解决此问题。但这很烦人……
到目前为止,我只看到经典 ASP 页面会发生这种情况,而不是我项目中的其他文件(html、js、css...)。我知道 IIS 缓存 ASP 页面并在文件更新时更新缓存,所以一定是有什么东西阻止了 IIS 识别这些文件何时发生变化。我只是不知道那会是什么。
如果我在 Windows 7 上使用 Visual Studio 2013、IIS Express 7.1.1557,这很重要。
我的 web.config:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.5" />
<customErrors mode="Off" />
</system.web>
<system.webServer>
<httpErrors errorMode="Detailed" />
</system.webServer>
</configuration>
【问题讨论】:
-
确保您的 web.config 没有启用输出缓存。 IIS/Express 默认不缓存asp,这是一个需要开启的功能。分享您的 web.config,我们可以更好地了解什么是 poppin。
-
@Frank 查看问题更新
-
您确定缓存页面的是它的 IIS 而不是您的浏览器吗?如果您在页面顶部包含以下内容会发生什么情况如果它没有改变(意味着时钟被固定),那么您启用了输出缓存,但是查看您的 web.config 我会假设它不是在站点级别,而是在服务器级别。如果时间冻结,请通过向 url 添加不同的查询字符串来尝试。 page.asp?test=some-random-text-to-see-if-page-loads-123423423
-
@Frank 肯定是 IIS,而不是浏览器。调试时,我会在调试器中看到旧版本的页面。我确实发现在 applicationHost.config 中启用了输出缓存,所以我禁用了它,我正在测试是否可以解决问题。
-
@Frank 忘了我说的话。即使禁用了输出缓存,问题仍然存在。我只是碰巧幸运地避免了一个星期的问题,但它今天又抬起了丑陋的头。
标签: visual-studio-2013 asp-classic iis-express