LCJ*_*LCJ 3 .net c# vb.net asp.net sql-server-2008
我们想在 SQL Server 中存储会话。我们有 sessionState 模式=“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"/>
Run Code Online (Sandbox Code Playgroud)
注 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 场的所有应用程序指定相同的加密密钥。
AFAIK 在 SQL Server 中存储会话状态时可以跳过 StateConnectionString。
我没有尝试过,但似乎在这里得到了证实:http://support.microsoft.com/kb/317604