【发布时间】:2011-10-19 07:22:49
【问题描述】:
我们想在 SQL Server 中存储会话。我们有 sessionState mode="SQLServer"。我得到了一个示例连接字符串,如下所示。在此它同时具有 stateConnectionString 和 sqlConnectionString。
问题:为什么mode="SQLServer"时需要stateConnectionString?
<sessionState mode="SQLServer"
cookieless="false" timeout="20"
stateConnectionString="tcpip=XXX.XX.XXX.XXX:42424"
sqlConnectionString="data source=XXX-FFFF-sql2k8,2025;
Initial Catalog=AspState_XX_3_0;user id=XXX;password=XXX"
allowCustomSqlDatabase="true"
sqlCommandTimeout="1200"/>
注意 1:SQLServer 模式 将会话状态存储在 SQL Server 数据库中。使用此模式可确保在重新启动 Web 应用程序时保留会话状态,并使会话状态可用于 Web 场中的多个 Web 服务器。要使用 SQLServer 模式,您必须首先确保在 SQL Server 上安装了 ASP.NET 会话状态数据库。您可以使用 Aspnet_regsql.exe 工具安装 ASP.NET 会话状态数据库
注意 2:StateServer 模式将会话状态存储在一个进程中,称为 ASP.NET 状态服务,它与 ASP.NET 工作进程或 IIS 应用程序池是分开的。要使用 StateServer 模式,您必须首先确保 ASP.NET 状态服务正在用于会话存储的服务器上运行。要在 Web 场中使用 StateServer 模式,您必须在 Web 配置的 machineKey 元素中为属于 Web 场的所有应用程序指定相同的加密密钥。
【问题讨论】:
标签: c# .net asp.net vb.net sql-server-2008