因为公司有多台服务器,所以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)]')已存在。 ------------------------------------------ Completed execution of InstallSqlState.SQL ------------------------------------------
这段里说要运行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 -ssremove -E
就OK了.