Tôi đang sử dụng AppFabric làm nhà cung cấp trạng thái phiên trong ứng dụng ASP.Net MVC2 của mình và tôi cũng muốn sử dụng bộ nhớ cache cục bộ. Tôi có các mục sau đây trong web.config của tôi ngay sau khi nút configSections:AppFabric có thể là nhà cung cấp trạng thái phiên và sử dụng bộ nhớ cache cục bộ không?
<dataCacheClient>
<localCache
isEnabled="true"
sync="TimeoutBased"
objectCount="100000"
ttlValue="300" />
<hosts>
<host name="127.0.0.1" cachePort="22233"/>
</hosts>
</dataCacheClient>
Tôi cũng có các mục sau đây trong web.config như một đứa trẻ của nút system.web:
<sessionState mode="Custom" customProvider="AppFabricCacheSessionStoreProvider">
<providers>
<add name="AppFabricCacheSessionStoreProvider" type="Microsoft.ApplicationServer.Caching.DataCacheSessionStoreProvider" cacheName="Default" sharedId="DefaultId"/>
</providers>
</sessionState>
Thật không may nếu tôi thêm thứ gì đó vào phiên, sau đó chạy hai lệnh sau trong quyền hạn AppFabric, mọi thứ tôi đã thêm vào dữ liệu phiên của mình không còn ở đó nữa. Điều đó khiến tôi tin rằng nó không sử dụng bộ đệm cục bộ:
Stop-CacheCluster
Start-CacheCluster
tôi cũng cố gắng đối tượng bộ nhớ đệm với AppFabric sử dụng đoạn mã sau và sau khi tôi bắt đầu và ngừng các CacheCluster đối tượng một lần lưu trữ không còn lưu trữ:
var factory = new DataCacheFactory();
var cache = factory.GetCache("Default");
cache.Put("Key", "Test");
Tuy nhiên nếu tôi nhanh chóng AppFabric sử dụng đoạn mã sau nơi tôi dứt khoát nói với nó để sử dụng bộ nhớ cache cục bộ thay vì dựa vào mục nhập web.config hoạt động:
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");
Tôi đang làm gì sai, tại sao nhập web.config của tôi hoạt động khi yêu cầu AppFabric sử dụng bộ nhớ cache cục bộ? Bạn có thể sử dụng AppFabric làm nhà cung cấp trạng thái phiên và cũng có thể sử dụng bộ nhớ cache cục bộ không?