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



>EDIT(澄清我的问题):是否有一种 API 或方法可供我们从我们自己的代码中使用进程外 Asp.NET 状态服务,或者这是专有的?

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

我们希望工作的关键部分之一是能够使用与 .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 框架代码复制代码。意识到这将是一个非常糟糕的决定。

我缺少任何选项吗?

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

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

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

最新更新