有没有办法清除服务器场的缓存?
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
或者将分布式缓存与 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
我已经在一个应用程序中实现了 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
或者将分布式缓存与 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