用数据库保存Session及创建ASPState数据库时出现的问题
sessionState 使用 SQLServer 模式:
在运行 SQL Server 的计算机(将存储会话状态)上运行 InstallSqlState.sql(默认安装在 <Drive>:\systemroot\Microsoft.NET\Framework\version中)。它将使用新的存储过程和 TempDB 数据库中的 ASPStateTempApplications 和 ASPStateTempSessions 表创建一个称为 ASPState 的数据库。
在应用程序的 Web.config 文件中,设置 mode=SQLServer 并设置 sqlConnectionString 属性。例如,sqlConnectionString="data source=localhost;Integrated Security=SSPI;Initial Catalog=northwind"。
使用aspnet_regsql.exe 创建ASPState数据库,用来保存session会话
因为公司有多台服务器,所以session要保存在sql server上,因此要在数据库中建立存放session的数据库ASPState,
在C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727下找到了生成ASPState的sql:InstallSqlState.sql
马上打开,放到查询分析器里执行,怪了,在这里出问题了,报出了如下错误:
-----------------------------------------
Starting execution of InstallSqlState.SQL
-----------------------------------------
--------------------------------------------------
Note:
Do not run this file manually.
You should use aspnet_regsql.exe to install
and uninstall SQL session state.
Run 'aspnet_regsql.exe -?' for details.
--------------------------------------------------
If the job does not exist, an error from msdb.dbo.sp_delete_job is expected.
消息 14262,级别 16,状态 1,过程 sp_verify_job_identifiers,第 67 行
指定的 @job_name ('ASPState_Job_DeleteExpiredSessions')不存在。
If the category already exists, an error from msdb.dbo.sp_add_category is expected.
消息 14261,级别 16,状态 1,过程 sp_add_category,第 32 行
指定的 @name ('[Uncategorized (Local)]')已存在。
------------------------------------------
这段里说要运行aspnet_regsql.exe 来创建,为什么要这样搞呢?
于是打开VS2005命令提示,输入:aspnet_regsql.exe -?
出现了aspnet_regsql.exe的说明,往下拉会看到"会话状态选项",有一命令:-ssadd(Session state add?) 解释说:添加对 sqlserver 模式会话状态的支持.
估计就是这个了,输入: aspnet_regsql.exe -ssadd
提示:请指定用户ID,或对受信任的连接使用-E
输入如下:aspnet_regsql.exe -ssadd -E
成功.
也可以指定用户名:aspnet_regsql.exe -ssadd -U sa
会提示输入密码.正确输入后也会执行成功.
也可以指定用 服务器和户名:aspnet_regsql.exe -ssadd -S 192.168.0.108 -U sa
会提示输入密码.正确输入后也会执行成功.
删除该功能的话执行aspnet_regsql.exe -ssremove -E
就OK了.
sessionState 使用 SQLServer 模式:
在运行 SQL Server 的计算机(将存储会话状态)上运行 InstallSqlState.sql(默认安装在 <Drive>:\systemroot\Microsoft.NET\Framework\version中)。它将使用新的存储过程和 TempDB 数据库中的 ASPStateTempApplications 和 ASPStateTempSessions 表创建一个称为 ASPState 的数据库。
在应用程序的 Web.config 文件中,设置 mode=SQLServer 并设置 sqlConnectionString 属性。例如,sqlConnectionString="data source=localhost;Integrated Security=SSPI;Initial Catalog=northwind"。
使用aspnet_regsql.exe 创建ASPState数据库,用来保存session会话
因为公司有多台服务器,所以session要保存在sql server上,因此要在数据库中建立存放session的数据库ASPState,
在C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727下找到了生成ASPState的sql:InstallSqlState.sql
马上打开,放到查询分析器里执行,怪了,在这里出问题了,报出了如下错误:
-----------------------------------------
Starting execution of InstallSqlState.SQL
-----------------------------------------
--------------------------------------------------
Note:
Do not run this file manually.
You should use aspnet_regsql.exe to install
and uninstall SQL session state.
Run 'aspnet_regsql.exe -?' for details.
--------------------------------------------------
If the job does not exist, an error from msdb.dbo.sp_delete_job is expected.
消息 14262,级别 16,状态 1,过程 sp_verify_job_identifiers,第 67 行
指定的 @job_name ('ASPState_Job_DeleteExpiredSessions')不存在。
If the category already exists, an error from msdb.dbo.sp_add_category is expected.
消息 14261,级别 16,状态 1,过程 sp_add_category,第 32 行
指定的 @name ('[Uncategorized (Local)]')已存在。
------------------------------------------
这段里说要运行aspnet_regsql.exe 来创建,为什么要这样搞呢?
于是打开VS2005命令提示,输入:aspnet_regsql.exe -?
出现了aspnet_regsql.exe的说明,往下拉会看到"会话状态选项",有一命令:-ssadd(Session state add?) 解释说:添加对 sqlserver 模式会话状态的支持.
估计就是这个了,输入: aspnet_regsql.exe -ssadd
提示:请指定用户ID,或对受信任的连接使用-E
输入如下:aspnet_regsql.exe -ssadd -E
成功.
也可以指定用户名:aspnet_regsql.exe -ssadd -U sa
会提示输入密码.正确输入后也会执行成功.
也可以指定用 服务器和户名:aspnet_regsql.exe -ssadd -S 192.168.0.108 -U sa
会提示输入密码.正确输入后也会执行成功.
删除该功能的话执行aspnet_regsql.exe -ssremove -E
就OK了.