存储ASP.NET会话状态时AppFabric Cache的新缓存参数

Mik*_*all 6 asp.net caching appfabric

当您将会话状态存储在缓存中时,创建AppFabric缓存的"最佳"参数是什么? 与MSDN高速缓存相关的命令

Powershell命令行:

New-Cache [-CacheName] <String> [-Eviction <String>] [-Expirable <String>] [-Force [<SwitchParameter>]] [-NotificationsEnabled <String>] [-Secondaries <Int32>] [-TimeToLive <Int64>]
Run Code Online (Sandbox Code Playgroud)
  • CacheName:<application name> -session-state
  • 辅助:1(服务器故障时打开高可用性)
  • 驱逐:?
  • 可以接受的:?
  • TimeToLive :?
  • 力量:?
  • NotificationsEnabled :?

由于我不想删除会话,除非通过代码或会话超时放弃会话...

对于驱逐,我会认为"无",并且对于可终止的,我会认为是假的.

我已经测试并调用Session.Abandon确实从缓存中删除了该对象.我还测试了是否通过扩展我的会话,缓存中的会话对象也被扩展.这似乎是"正确"的方式.

Mik*_*all 3

微软员工的帖子证实了我的发现

2)由于您的问题是在会话状态的上下文中,因此当您使用会话状态提供程序时,会话对象将存储在缓存中,超时时间等于 ASP.Net 会话超时时间。每次访问会话时,缓存中会话对象的超时时间也会重置为会话超时时间。仅当 ASP.Net 会话超时时,才能确保会话对象从缓存中过期。

我仍然需要创建一个命名缓存才能获得高可用性,但看起来我可以将其他设置保留为默认值。

New-Cache projectname-session-state -Secondaries 1
Run Code Online (Sandbox Code Playgroud)