我正在使用第三方CMS,该CMS使用从System.Web.SessionState.SessionStateStoreProviderBase
继承的自定义SessionStateProvider。System.Web.SessionState.SessionStateModule
用作SessionStateModule。
我需要允许每个会话的并发请求与可写会话。这可以使用aspnet:AllowConcurrentRequestsPerSession
设置时,从here使用AsyncSessionStateModule完成。这将满足我的要求,但这需要提供程序继承Microsoft.AspNet.SessionState.SessionStateStoreProviderAsyncBase
和提供程序从第三方CMS不。
我知道这可以通过实现ISessionStateModule
来实现,但这似乎风险很高,很容易出错。是否已经有一个SessionStateModule
满足我的要求(似乎我不是第一个遇到这个问题的人)?
- 允许每个会话并发请求
- 可写会话(即没有
SessionStateBehavior.ReadOnly
来实现并发请求) - 支持从
System.Web.SessionState.SessionStateStoreProviderBase
继承的提供程序
或者我在这里错过了什么,这可以用一种更容易的方式实现吗?
1条答案
按热度按时间tvz2xvvm1#
我在几个不同的场景中使用过
Microsoft.AspNet.SessionState.SessionStateModule
。Microsoft.AspNet.SessionState.InProcSessionStateStoreAsync
-此提供程序包含在NuGet包中,使用起来简单得多,因为它不需要外部依赖关系。但是,您需要确保用户访问同一个Web服务器。如果您有多个服务器部署,则需要负载平衡器上的“粘性会话”。Microsoft.Web.Redis.RedisSessionStateProvider
-这个提供者需要2个额外的NuGet包和一个Redis示例。我只推荐在多服务器配置中使用这个配置,在那里你的负载平衡器上没有“粘性会话”。示例web.config设置: