2

我需要在数据库中维护会话状态。但是我无法直接从 Web 服务器访问数据库。Web 服务器与应用服务器通信,后者又可以访问数据库。
有没有办法配置这个?或者是否必须编写自定义组件。
此设置的原因是允许负载平衡并允许将用户的会话从一台服务器重定向到另一台服务器。

4

4 回答 4

4

使用 ASP.NET 会话状态服务,您可以直接在您的应用服务器上运行此服务 - 请参阅此处的 MSDN 上的注释- 并配置所有 Web 主机以将其用户会话状态存储在该中央状态服务器上。ASP.NET 会话状态服务将会话存储在应用服务器的内存中,并且不需要 SQL Server 数据库。

于 2008-12-15T23:32:22.457 回答
3

请注意,如果您认为由于使用多个 Web 服务器而需要将会话存储在数据库中,那么情况并非如此:您可以使用 StateServer。这意味着您在一台机器上启用会话状态服务并在所有 Web 服务器的 web.config 中设置该机器,以便它们都使用同一台机器作为状态。

于 2008-12-15T23:12:57.957 回答
2

您唯一的选择是构建自定义组件。

它们实际上并不难做,因为您唯一需要做的就是让浏览器从 cookie 或查询字符串中向您发送一个值。存储的只是名称值对。

请参阅http://msdn.microsoft.com/en-us/library/aa479034.aspx

于 2008-12-15T23:06:38.390 回答
1

你可以编写一个自定义的 SessionState 提供程序。我认为这是唯一的方法。看看这里的 MSDN

于 2008-12-15T23:06:25.507 回答