我正在尝试将会话状态添加到SQL Server,但我无法让它工作。
我首先尝试将以下连接字符串添加到配置中:
sessionState mode="SQLServer"
sqlConnectionString="Server=XXXXXX;Database=ASPState;Integrated Security=true"
并收到以下错误:
sqlConnectionString属性或其引用的连接字符串不能包含连接选项
Database
,Initial Catalog
或AttachDbFileName
。为了允许这一点,allowCustomSqlDatabase属性必须设置为true,并且应用程序需要被授予不受限制的SqlClientPermission。如果申请没有此权限,请咨询您的管理员。
然后我尝试将allowCustomSqlDatabase="true"
添加到连接字符串并收到以下错误:
System.Data.SqlClient.SqlException:无效的对象名称'tempdb.dbo.ASPStateTempApplications'。
看起来它正在尝试连接到tempdb
而不是ASPState
数据库。
有任何想法如何使用ASPState数据库吗?
干杯
安迪
答案 0 :(得分:0)
正如它所说here:
如果未向SQL Server添加会话状态,则在将网站配置为使用SQL Server模式会话状态时,会收到System.Data.SqlClient.SqlException类生成的以下错误消息:
无效的对象名称'tempdb.dbo.ASPStateTempSessions'。
因此,您应该按照上述链接中的步骤1的说明操作,并使用aspnet_regsql.exe
生成所需的表格和其他内容。
该工具的完整路径是:
<system drive>:\Windows\Microsoft.NET\Framework\<.NETFrameworkversion>\aspnet_regsql.exe
请看一下:https://stackoverflow.com/a/3151315/5675763
来自here:
如果使用aspnet_regsql向导,默认情况下不会添加会话表,因此您需要运行以下命令...
以上链接中的命令是:
aspnet_regsql.exe -S <servername> -E -ssadd -sstype p
此命令将添加AspState数据库并使用当前的Windows登录。
如果要将会话状态表和存储过程添加到数据库,则应使用以下命令:
aspnet_regsql.exe -S <server_address> -U <sql_username> -P <sql_password> -d <database_name> -ssadd -sstype c
您可以使用此command reference来使用更多选项。