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

Asp.net 自定义会话状态模块-使用ASP状态服务,asp.net,session,stateserver,Asp.net,Session,Stateserver,编辑(澄清我的问题):

编辑(澄清我的问题):

我们正在研究实现一个可重用asp附带模块组件的应用程序。我们的主要目标是防止会话锁定(不将会话状态模式更改为只读)这可能吗?

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

我已经在年深入研究了代码,我的发现如下。我希望有人有一个不同的实用程序,可以用来集成自定义会话状态模块和ASP状态服务


默认会话模块为。这是一个
密封的
类。此类似乎是唯一使用该值(在web配置中指定)的类

设置此标志后,模块将
\u store
变量设置为新的

我最初对如何实现这一点有一些想法,但由于上面类中的修饰符,我无法实现这些。还有其他的方法可以采取吗

  • 实例化一个新的
    System.Web.SessionState.SessionStateModule
    并引用
    \u store
    变量。这不起作用,显然是因为
    \u store
    变量是私有的
  • 我尝试创建一个继承自
    System.Web.SessionState.SessionStateModule
    的类,但显然,由于它是
    密封的
    ,所以不起作用
  • 查看了从.NET framework代码复制代码。意识到这将是一个非常糟糕的决定

  • 有没有我遗漏的选项?

    我建议您阅读以下主题:

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

    如果您要查找会话模块的自定义实现,可以查看以下内容:

    由于所有内容都是密封的和私有的,所以除了重写它之外,您别无选择。但是,由于InProc会话状态提供程序中的许多代码都与锁(以及您可能不需要的性能计数器)密切相关,因此我将使用参考源代码作为起点,删除所有不必要的代码并从那里开始。这不应该是一项巨大的工作。实际上,当您编写会话状态提供程序时,最困难的部分是锁定,因此,如果您不需要它,它应该不超过200/300行代码。我真正的问题(正如我进一步思考的那样)是,是否有一种与Asp.net状态服务OOPS接口的方法我遗漏了。很抱歉错过了那个。但是我的答案基本上是一样的(虽然out-proc有套接字连接,所以有点复杂)。你能用WIF吗?我已经读过这个主题了。我的问题是关于在自定义会话状态工具中使用Asp.net状态服务的