7

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

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

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

我已经深入研究了参考源中的代码,我的发现如下。我希望有人有一个不同的实用程序,可以潜在地用于将自定义会话状态模块集成到 ASP 状态服务中。


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

当设置此标志时,模块将_store变量设置为一个新System.Web.SessionState.OutOfProcSessionStateStoreFriend Sealed类。

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

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

我有什么选择吗?

4

1 回答 1

-1

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

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

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

于 2016-03-18T12:16:45.693 回答