我在我的ASP.Net MVC2应用程序中使用AppFabric作为会话状态提供程序,我希望它也使用本地缓存.我在config.ctions节点后面的web.config中有以下条目:
我在web.config中也有以下条目作为system.web节点的子节点:
不幸的是,如果我在会话中添加一些内容然后在AppFabric powershell中运行以下两个命令,那么我添加到会话数据中的任何内容都不再存在,这让我相信它没有使用本地缓存:
Stop-CacheCluster Start-CacheCluster
我还尝试使用以下代码使用AppFabric缓存对象,在启动和停止CacheCluster之后,不再缓存一次缓存的对象:
var factory = new DataCacheFactory(); var cache = factory.GetCache("Default"); cache.Put("Key", "Test");
但是,如果我使用以下代码实例化AppFabric,我明确告诉它使用本地缓存而不是依赖web.config条目它可以工作:
var servers = new List(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");
我做错了什么,为什么我的web.config条目不能告诉AppFabric使用本地缓存?您可以使用AppFabric作为会话状态提供程序并使用本地缓存吗?