- asp.net/
- ASP.Net SQL Server会话状态与持久会话状态
ASP.Net SQL Server会话状态与持久会话状态
ASP.Net SQL Server会话状态与持久会话状态,asp.net,sql-server,session,session-state,Asp.net,Sql Server,Session,Session State,我正在研究并尝试将会话变量自动保存到SQLServer中。我发现这个链接正在讨论(称之为“选项1”)和这个链接正在讨论(称之为“选项2”)
主要的区别似乎是,在选项1中,如果运行SQL Server的机器关闭,会话数据将丢失,而选项2则会将会话数据持久化。在选项1中,进程似乎使用了tempdb,而选项2似乎通过使用ASPState数据库来持久化会话数据
我有几个问题似乎找不到答案:
在第一个选项中,本文讨论了web配置中关于标记所需的配置。这不会添加到持久性案例中(选项2)。两种情况下的是否应该
我正在研究并尝试将会话变量自动保存到SQLServer中。我发现这个链接正在讨论(称之为“选项1”)和这个链接正在讨论(称之为“选项2”)
主要的区别似乎是,在选项1中,如果运行SQL Server的机器关闭,会话数据将丢失,而选项2则会将会话数据持久化。在选项1中,进程似乎使用了tempdb,而选项2似乎通过使用ASPState数据库来持久化会话数据
我有几个问题似乎找不到答案:
在第一个选项中,本文讨论了web配置中关于标记所需的配置。这不会添加到持久性案例中(选项2)。两种情况下的是否应该相同
我尝试了第二种选择,因为这似乎更符合我的案例场景。我首先下载了PersistSQLState.exe,它只是自我提取InstallPersistSqlState.sql和UninstallPersistSqlState.sql脚本。我运行了InstallPersistSQLState.sql,该程序已成功完成,并在sql Server中创建了“ASPState”数据库。我使用选项2中所述的格式设置标记,如上文第1)点所述
运行应用程序时,我出现以下错误:
无法使用SQL Server,因为SQL Server上未安装ASP.NET 2.0版会话状态,或者ASP.NET没有运行dbo.TempGetVersion存储过程的权限。如果尚未安装ASP.NET会话状态架构,请安装ASP.NET会话状态SQL Server 2.0或更高版本。如果已安装架构,请将dbo.TempGetVersion存储过程的执行权限授予ASP.NET应用程序池标识或sqlConnectionString属性中指定的Sql Server用户。“
这概括了两件事:Asp.Net 2.0版会话状态可能尚未安装,进程无法运行dbo.TempGetVersion存储过程(由于各种原因)
由InstallPersistSqlState.sql脚本创建的ASPState数据库中不存在存储过程dbo.TempGetVersion。此存储过程是否实际与tempdb(非持久)相关,因此为什么ASPState的架构不包含它
这是需要安装的吗?如果是,遵循什么过程?!在运行InstallPersistSQLState.sql脚本后是否应将其安装到ASPState数据库中?如果不是,具体执行什么操作?选项1或选项2中都没有与此“.exe”相关的内容
最后,我还尝试卸载持久性案例,而不是运行与选项1(非持久性)相关的脚本。在这种情况下,上面第一个链接中提供的脚本似乎不起作用;返回2个错误,但找不到作业?!。有人知道为什么会发生这种情况,并且正确的脚本是否存在于某种在线位置
如果有任何帮助,我们将不胜感激,因为在这个主题上,文档似乎很差。我的问题中列出的选项1和选项2文章具有误导性,这就是为什么我浪费了一整天的时间试图用错误的信息使其工作:我只是手头没有正确的文章
下面是我为实现持久会话状态所做的工作。希望它能对任何想要实现相同功能的人有所帮助
在计算机上,以管理员模式打开CMD
将目录更改为.Net framework文件夹:
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
运行以下命令:
aspnet_regsql.exe-S“SQLServerInstanceName”-U“用户名”-p“密码”-ssadd-SSP类型
上面第2点中的命令的小说明
- Aspnet_regsql.exe-是在计算机上安装Asp.Net会话状态的.exe
- -S定义SQL Server实例名称
- -U定义用户名-
- -P定义密码
- ssadd定义为会话状态创建新数据库
- sstype定义会话状态的类型。p是持久的
- 最后,在要实现持久会话状态的Asp.Net应用程序的web.config中,将标记更改为如下所示:
有关完整信息,请访问此网站并参考SQL Server模式。我问题中列出的选项1和选项2文章具有误导性,这就是为什么我浪费了一整天的时间试图使用错误的信息:我手头上没有合适的文章
下面是我为实现持久会话状态所做的工作。希望它能对任何想要实现相同功能的人有所帮助
在计算机上,以管理员模式打开CMD
将目录更改为.Net framework文件夹:
cd C:\Windows\Microsoft.NET\Framework\v4.0.30319
运行以下命令:
aspnet_regsql.exe-S“SQLServerInstanceName”-U“用户名”-p“密码”-ssadd-SSP类型
上面第2点中的命令的小说明
- Aspnet_regsql.exe-是在计算机上安装Asp.Net会话状态的.exe
- -S定义SQL Server实例名称
- -U定义用户名-
- -P定义密码
- ssadd定义为会话状态创建新数据库
- sstype定义会话状态的类型。p是持久的
- 最后,在要实现持久会话状态的Asp.Net应用程序的web.config中,将标记更改为如下所示:
<