自定义会话状态模块 - 使用ASP状态服务

Dan*_*ews 7 asp.net session stateserver

编辑(澄清我的问题):我们可以使用我们自己的代码使用Out Of Process Asp.NET状态服务的API或方法,还是专有的?

我们正在研究实现一个自定义会话状态模块,该模块重用了asp提供的模块组件.我们的主要目标是阻止会话锁定(不将会话状态模式更改为ReadOnly).这可能吗?

我们希望使用的关键部分之一是能够使用.NET内部使用的相同的Out of Proc会话存储提供程序(ASP状态服务),因为我们有一个负载均衡的环境,它不会使用粘性会话.

我已经在参考源中挖掘了代码,我的发现如下.我希望有人有一个不同的实用程序,可能会用于集成ASP状态服务的自定义会话状态模块.


默认会话模块是System.Web.SessionState.SessionStateModule.这是一Sealed堂课.此类似乎是唯一使用SessionStateMode.StateServer枚举值的类(在Web配置中指定).

设置此标志后,模块将_store变量设置为新类System.Web.SessionState.OutOfProcSessionStateStore,即Friend Sealed类.

我最初对如何做到这一点有一些想法,并且由于上面类的修饰符,我无法做到这些.还有其他方法可以采取吗?

  1. 实例化一个新的System.Web.SessionState.SessionStateModule并引用该_store变量.这不起作用,显然是因为_store变量是私有的.
  2. 我尝试创建一个继承自的类,System.Web.SessionState.SessionStateModule但很明显,因为它sealed不起作用.
  3. 看着从.NET框架代码中复制代码.意识到这将是一个非常糟糕的决定.

我有什么选择吗?

小智 -1

我建议您阅读此主题:我刚刚发现为什么所有 ASP.Net 网站都很慢,并且我正在尝试解决该问题

它提供了有关会话主题的一些起点和信息,特别是锁定问题。

如果您寻找会话模块的自定义实现,您可以在这里查看: http ://www.codeproject.com/Articles/11712/Custom-session-state-management-in-ASP-NET