有没有办法清除服务器场的缓存?

Is there any way to clear cache from server farm?

我已经在一个应用程序中实现了 OutputCache,它运行良好,但是由于我将位置指定为服务器,并且应用程序在服务器场(2 台服务器)中运行,所以当我清除缓存时,它只从一个服务器中清除服务器一次。我考虑过指定一个服务器位置(硬编码),这样缓存就会存储在一个地方,并且在需要时可以很容易地清除。 那么,有什么方法可以在 OutputCache 中为位置属性硬编码服务器名称吗?还是来自 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 Class, MSDN

OutputCacheProvider for Redis

或者将分布式缓存与 AppFabric 一起使用:How to: Configure the AppFabric Output Cache Provider for ASP.NET . Be aware though that Microsoft is ending support for AppFabric for Windows Server next year Microsoft AppFabric 1.1 for Windows Server Ends Support 4/2/2016