2

負荷分散サーバーでMicrosoftEnterpriseLibraryキャッシングを使用できますか?私の場合、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から再度設定して、DBを確認したところ、以下のように2回設定されていることがわかりました。 ここに画像の説明を入力してください

それについて何か考えはありますか?両方のサーバーを設定して取得する必要があります。

ありがとうございました

4

1 に答える 1

3

Enterprise Libraryは、すぐに使用できる分散型マルチサーバーキャッシュソリューションをサポートしていません。開発者ガイドの第5章から:

箱から出して、Caching Application Blockは、複数のサーバー間での分散キャッシングに必要な機能を提供しません。

あなたがやろうとしていることに基づいて、私はWindows Server AppFabricCachingServicesを見ていきます

Windows Server AppFabricは、スケーラブルで利用可能な高性能アプリケーションを開発するための分散型メモリ内アプリケーションキャッシュプラットフォームを提供します。

于 2011-10-18T04:29:39.623 に答える