有没有办法在ASP.NET中全局禁用服务器缓存?比如在web.config文件中添加某种设置?
到目前为止,我已尝试添加这些并且它没有任何区别......
<caching>
<sqlCacheDependency enabled="false"></sqlCacheDependency>
<outputCache enableOutputCache="false"
enableFragmentCache="false"
sendCacheControlHeader="false"
omitVaryStar="false" />
</caching>
答案 0 :(得分:13)
如果您使用的是IIS7 / 7.5或IIS Express,还有一种在system.webServer中禁用此功能的方法。这将在您的主web.config文件(对于webforms和mvc)以及子文件夹中的web.config文件中工作,以便为应用程序的特定区域禁用它。
<system.webServer>
<caching enabled="false" />
</system.webServer>
答案 1 :(得分:3)
OutputCacheSection部分用于配置应用程序范围设置,例如是启用还是禁用页面输出缓存。例如,您可以通过将enableOutputCache="false"
添加到Web.config
文件中的OutputCacheSection来禁用整个应用程序的页面输出缓存。配置文件中的设置优先于各个页面中的缓存设置,因此示例设置意味着不会使用输出缓存。
<system.web>
<caching>
<outputCache enableOutputCache="false"/>
</caching>
</system.web>
答案 2 :(得分:0)
您可以通过删除其模块来禁用整个应用程序的输出缓存和会话状态,这可以通过web.config来完成
<httpModules>
<add name="OutputCache" type="System.Web.Caching.OutputCacheModule" />
<add name="Session" type="System.Web.SessionState.SessionStateModule" />
</httpModules>
或
将此添加到您的页面加载
Response.Cache.SetCacheability(HttpCacheability.NoCache)
答案 3 :(得分:-1)
您可以通过将enableOutputCache =“false”添加到Web.config文件中的OutputCacheSection来禁用整个应用程序的页面输出缓存。
e.g。
<configuration>
<system.web>
<caching>
<outputCacheSettings enableOutputCache="false"/>
</caching>
</system.web>
</configuration>
所以您的配置无法正常运行,因为enableOutputCache
元素上的outputCache
属性应该位于outputCacheSettings
元素上。