web.config文件中的outputcache设置有问题。
我在opensuse 11.3上使用nginx 0.8.53和快速cgi
对于动态页面,我创建了outputcacheprofiles,它在windows中的visual studio环境中工作得很好。当我请求一个页面时,它带有正确的缓存控制头。但是当我在opensuse上使用nginx时,不管我在outputcacheprofiles中设置了什么,它都会发送“cache control public,max age=0”。我尝试了apache2,它似乎也没有像nginx那样响应outputcacheprofile设置。
一切都在windows环境下运行得很好,我得到了不同浏览器中不同页面的正确缓存控制头。但当我使用apache或nginx时,它似乎没有响应web.config文件中的outputCacheProfiles。
我删除了包含其内容的指令,它仍然在响应中添加max age=0。
希望我能解释一下情况。
谨致问候。
<caching>
<outputCache enableOutputCache="true" />
<outputCacheSettings>
<outputCacheProfiles>
<add name="MatchesController.Index" duration="5" varyByParam="*" varyByCustom="utcOffset" location="ServerAndClient" enabled="true" noStore="true"/>
<add name="MatchesFeedController.Index" duration="5" varyByParam="*" varyByCustom="utcOffset" location="ServerAndClient" enabled="true" noStore="true"/>
<add name="MatchesFeedController.IncidentsSummary" duration="5" varyByParam="*" location="ServerAndClient" enabled="true"/>
<add name="MatchesController.Show" duration="60" varyByParam="*" varyByCustom="utcOffset" location="ServerAndClient" enabled="true"/>
<add name="MatchesController.Preview" duration="60" varyByParam="*" varyByCustom="utcOffset" location="ServerAndClient" enabled="true"/>
<add name="MatchesController.Live" duration="60" varyByParam="*" varyByCustom="utcOffset" location="ServerAndClient" enabled="true"/>
<add name="MatchesController.TeamStats" duration="60" varyByParam="*" varyByCustom="utcOffset" location="ServerAndClient" enabled="true"/>
</outputCacheProfiles>
</outputCacheSettings>
</caching>
最佳答案
与nginx/apache问题相比,听起来更像一个mono错误。使用mono时,尝试使用mono附带的xsp web服务器来托管应用程序,而不使用nginx或apache,并检查Cache-Control
头的结果。如果在没有nginx/apache的情况下将它们错误地设置为public, max-age=0
,这可能是mono中的一个bug。