Ich verwende AppFabric als Session State Provider in meiner ASP.Net MVC2 App, und ich möchte, dass es auch den lokalen Cache verwendet. Ich habe den folgenden Eintrag in meinem web.config direkt nach dem configSections Knoten:Kann AppFabric der Sitzungszustandsanbieter sein und lokalen Cache verwenden?
<dataCacheClient>
<localCache
isEnabled="true"
sync="TimeoutBased"
objectCount="100000"
ttlValue="300" />
<hosts>
<host name="127.0.0.1" cachePort="22233"/>
</hosts>
</dataCacheClient>
Ich habe auch den folgenden Eintrag in web.config als Kind des system.web Knoten:
<sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider">
<providers>
<add name="AppFabricCacheSessionStoreProvider" type="Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider" cacheName="Default" sharedId="DefaultId"/>
</providers>
</sessionState>
Leider habe ich zu meiner Session-Daten nicht mehr, wenn ich etwas zu Sitzung führen sie dann die folgenden zwei Befehle in der AppFabric Powershell, etwas hinzufügen, gibt es was mich lässt es nicht glauben lokalen Cache verwenden wurde:
Stop-CacheCluster
Start-CacheCluster
Ich versuche auch Caching-Objekte mit AppFabric den folgenden Code verwenden, und nachdem ich starten und die CacheCluster die einmal zwischengespeicherte Objekt stoppen wird nicht mehr im Cache:
var factory = new DataCacheFactory();
var cache = factory.GetCache("Default");
cache.Put("Key", "Test");
Allerdings, wenn ich AppFabric mit dem folgenden Code instanziiert, wo ich es ausdrücklich sagen, lokalen Cache zu verwenden, anstatt auf der web.config Eintrag unter Berufung funktioniert es:
var servers = new List<DataCacheServerEndpoint>(1) { new DataCacheServerEndpoint("127.0.0.1", 22233) };
var configuration = new DataCacheFactoryConfiguration {
Servers = servers,
LocalCacheProperties = new DataCacheLocalCacheProperties(100000, new TimeSpan(0, 30, 0), DataCacheLocalCacheInvalidationPolicy.TimeoutBased)
};
var factory = new DataCacheFactory(configuration);
var cache factory.GetCache("StpWebSession");
cache.Put("Key", "Test");
Was mache ich falsch, warum meine web.config Eintrag Arbeit nicht AppFabric erzählen lokalen Cache zu benutzen? Können Sie AppFabric als Sitzungsstatusanbieter verwenden und auch lokalen Cache verwenden?