负载平衡中的EnterpriseLibrary缓存

时间:2011-10-17 21:17:02

标签: asp.net caching enterprise-library database-caching enterprise-library-4.1

我可以在Load Balance服务器中使用Microsoft企业库缓存吗? 我的情况是我有一个位于2个负载平衡服务器的Web服务,我使用数据库缓存“backingStores”,配置如下

<cachingConfiguration defaultCacheManager="Cache Manager">
    <cacheManagers>
        <add name="Cache Manager" type="Microsoft.Practices.EnterpriseLibrary.Caching.CacheManager, Microsoft.Practices.EnterpriseLibrary.Caching, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" expirationPollFrequencyInSeconds="60" maximumElementsInCacheBeforeScavenging="1000" numberToRemoveWhenScavenging="10" backingStoreName="MyDataCacheStorage11"/>
    </cacheManagers>
    <backingStores>
        <add name="MyDataCacheStorage11" type="Microsoft.Practices.EnterpriseLibrary.Caching.Database.DataBackingStore, Microsoft.Practices.EnterpriseLibrary.Caching.Database, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" encryptionProviderName="" databaseInstanceName="EntLib1ConnectionString111" partitionName="CAPwiki Cache"/>
        <add type="Microsoft.Practices.EnterpriseLibrary.Caching.BackingStoreImplementations.NullBackingStore, Microsoft.Practices.EnterpriseLibrary.Caching, Version=5.0.414.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" name="NullBackingStore"/>
    </backingStores>
</cachingConfiguration>

当我从server1设置缓存并使用密钥“ _testorderstatus3 ”并尝试从server2获取它时,它返回Null值!!!

当我用server1中的相同键设置值并再次从server2设置它时,我检查数据库,我发现它设置了2次,如下所示 enter image description here

有什么想法吗?我需要设置并进入两个服务器。

谢谢

1 个答案:

答案 0 :(得分:3)

Enterprise Library不支持开箱即用的分布式多服务器缓存解决方案。来自Chapter 5 of the Developer's Guide

  

开箱即用,缓存应用程序块不提供   跨多个服务器的分布式缓存所需的功能。

根据您的目的,我会看一下Windows Server AppFabric Caching Services

  

Windows Server AppFabric提供分布式内存应用程序   缓存平台,用于开发可扩展,可用和   高性能应用程序。