配置SQL Server以存储 ASP.NET 会话状态
本文演示如何为 ASP.NET SQL Server模式会话状态管理配置 Microsoft SQL Server。
原始产品版本: ASP.NET
原始 KB 数: 317604
要求
以下列表概述了所需的建议的硬件、软件、网络基础结构和 Service Pack:
- Windows
- .NET Framework
- Internet 信息服务 (IIS)
- SQL Server
为 ASP.NET SQL Server会话状态配置SQL Server
以下步骤介绍如何运行InstallSqlState.sql和UninstallSqlState.sql脚本文件来配置SQL Server模式会话状态管理。
在 SQL 查询分析器的“ 文件 ”菜单上,选择“ 打开”。
在“ 打开查询文件 ”对话框中,浏览到 InstallSqlState.sql 脚本文件,然后选择“ 打开”。 默认情况下, InstallSqlState.sql 位于以下文件夹中:
system drive\WINNT\Microsoft.NET\Framework\version\
system drive\Windows\Microsoft.NET\Framework\version\
在 SQL 查询分析器中打开InstallSqlState.sql后,选择“查询”菜单上的“执行”以运行脚本。
在运行 UninstallSqlState.sql 脚本文件以卸载SQL Server模式会话状态管理配置之前,必须停止 w3svc 进程。 为此,请按照下列步骤操作:
- 在 Windows“开始 ”菜单上,选择“ 运行”,键入 cmd,然后选择“ 确定” 以打开命令提示符。
- 在命令提示符下,键入
net stop w3svc
。 你会收到 w3svc 进程已停止的确认。
在 SQL 查询分析器的“ 文件 ”菜单上,选择“ 打开”。
在“ 打开查询文件 ”对话框中,浏览到 UninstallSqlState.sql 脚本文件,然后选择“ 打开”。 默认情况下, UninstallSqlState.sql 位于以下文件夹中:
system drive\WINNT\Microsoft.NET\Framework\version\
system drive\Windows\Microsoft.NET\Framework\version\
在 SQL 查询分析器中打开UninstallSqlState.sql后,选择“查询”菜单上的“执行”以运行脚本。
卸载SQL Server模式会话状态管理配置后,必须重启 w3svc 服务。 若要重启 w3svc 进程,请在命令提示符处键入
net start w3svc
。
修改应用程序的 Web.config 文件
若要实现 ASP.NET SQL Server模式会话状态管理,必须修改<sessionState>
应用程序 Web.config 文件的 元素,如下所示:
将 元素的
<sessionState>
mode 属性设置为 SQLServer,以指示会话状态存储在 SQL Server 中。设置 属性
sqlConnectionString
以指定SQL Server连接字符串。 例如:sqlConnectionString="data source=MySQLServer;user id=<username>;password=<strongpassword>"
注意
用户 <(用户名>)必须有权对数据库执行此操作。
修改后的 <sessionState>
元素应如下所示:
<sessionState
mode="SQLServer"
sqlConnectionString="data source=127.0.0.1;user id=<username>;password=<strongpassword>"
cookieless="false"
timeout="20"
/>
注意
在指定 <sessionState>
元素和关联的属性值时,请确保使用正确的大小写。 此代码区分大小写。
疑难解答
如果在运行 UninstallSqlState.sql 脚本文件之前未停止 w3svc 进程,则会收到以下错误消息:
无法删除数据库“ASPState”,因为它当前正在使用中
如果在相关会话过期后未删除 ASPStateTempSessions 表中的条目,请确保 SQL Server 代理正在运行。 可以通过通过SQL Server中的作业计划的存储过程来实现此功能。 SQL Server代理管理这些作业。
使用默认InstallSqlState.sql和UninstallSqlState.sql脚本文件配置 ASP.NET SQL Server模式会话状态管理时。 默认情况下,这些文件将 ASPStateTempSessions 和 ASPStateTempApplications 表添加到 tempdb 数据库中SQL Server。 此外,如果重启SQL Server,则会丢失存储在 ASPStateTempSessions 和 ASPStateTempApplications 表中的会话状态数据。 有关如何运行备用脚本以配置持久性SQL Server会话状态管理的详细信息,以便在重启服务器时会话数据不会丢失。
References
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈