我可以在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次,如下所示
有什么想法吗?我需要设置并进入两个服务器。
谢谢
答案 0 :(得分:3)
Enterprise Library不支持开箱即用的分布式多服务器缓存解决方案。来自Chapter 5 of the Developer's Guide:
开箱即用,缓存应用程序块不提供 跨多个服务器的分布式缓存所需的功能。
根据您的目的,我会看一下Windows Server AppFabric Caching Services。
Windows Server AppFabric提供分布式内存应用程序 缓存平台,用于开发可扩展,可用和 高性能应用程序。