在上个月的某个时刻,我一直在处理的两个Web应用程序项目已经停止显示aspx和ascx文件的更新,直到IIS重新启动,或者它们所属的网站被重置。
这似乎非常随机,我在web.config部分找不到任何会导致此更改的原因。
有什么好处可以找到这个问题的来源?
web.config的当前缓存部分:
删除outputCacheProfile并重新启动IIS没有任何区别。
<caching>
<outputCacheSettings>
<outputCacheProfiles>
<add name="ClientResourceCache" location="None" enabled="true" duration="3600" varyByParam="*" varyByContentEncoding="gzip;deflate"/>
</outputCacheProfiles>
</outputCacheSettings>
</caching>
记住staticConent并重新启动也没有区别
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="1.00:00:00">
</clientCache>
</staticContent>
<caching>
<profiles>
<add extension=".gif" policy="DontCache" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" />
<add extension=".png" policy="DontCache" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" />
<add extension=".js" policy="DontCache" kernelCachePolicy="DontCache" duration="00:01:00" location="Any" />
<add extension=".css" policy="DontCache" kernelCachePolicy="DontCache" duration="00:01:00" location="Any" />
<add extension=".jpg" policy="DontCache" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" />
<add extension=".jpeg" policy="DontCache" kernelCachePolicy="CacheUntilChange" duration="0.00:01:00" location="Any" />
</profiles>
</caching>
我们还尝试使用CacheUntilChange添加.ascx和.aspx扩展名,这没有任何区别。具有相同设置的其他网站没有问题。
编辑:最初这个状态在项目构建时也没有更新,我个人无法确认该问题,但是其他开发人员已经告知了这个问题。
答案 0 :(得分:4)
在部署时,是删除发布位置中的所有数据,然后部署新文件还是仅复制和覆盖?我不认为这是代码或配置问题。
检查您的bin目录并查找扩展名为.cache的一些不合适的文件。我在过去遇到过这种情况,现在我总是确保在每次更新时都进行完全删除和部署,以确保没有遗留旧文件。
如果您在Visual Studio中使用“发布”功能,请确保设置“在发布之前删除所有现有文件”选项。
答案 1 :(得分:1)
Response.Cache.SetNoStore();
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Expires = -1;
将此添加到global.asax.cs文件中的应用程序开始请求事件中