繁体   English   中英

有什么方法可以清除服务器场中的缓存?

[英]Is there any way to clear cache from server farm?

我已经在一个应用程序中实现了OutputCache,并且工作正常,但是由于我将该位置指定为服务器,并且这些应用程序在服务器场(2台服务器)中运行,因此当我清除缓存时,它一次只能从一台服务器清除。 我曾考虑过指定服务器位置(硬代码),以便将缓存存储在一个位置,并且在需要时可以轻松清除。 因此,有什么方法可以硬编码OutputCache中location属性的服务器名称吗? 还是从webconfig文件?

在webconfig中声明

<system.web>
<caching>
  <outputCacheSettings>
    <outputCacheProfiles>
      <add name="Cache10Minutes"
           duration="300"
           location="Server"
           varyByParam="none"/>
    </outputCacheProfiles>
  </outputCacheSettings>
</caching>

相关页面中的定义(页面标题)

<%@ OutputCache CacheProfile="Cache10Minutes" Duration="300" Location="Server" VaryByParam="none"%>

要清除按钮上的缓存,请单击

HttpRuntime.UnloadAppDomain()

或者如何在客户端更新时从数据库创建触发器。 可以从两个服务器清除缓存吗? 如果我的想法错误或不够清晰,请纠正我,我很困惑。 请指教。

据我所知,输出缓存仅针对每个服务器。 但是,您可以实现自己的OutputCacheProvider并实现自己的缓存机制: OutputCacheProvider类,MSDN

Redis的OutputCacheProvider

或将分布式缓存与AppFabric一起使用: 如何:为ASP.NET配置AppFabric输出缓存提供程序 请注意,尽管微软明年将停止对Windows Server的AppFabric的支持Microsoft Windows Server的AppFabric 1.1的支持将在2016年4月2日终止

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM