IIS SQL Server会话状态错误

时间:2015-01-12 11:53:14

标签: sql asp.net sql-server iis

我正在尝试将会话状态添加到SQL Server,但我无法让它工作。

我首先尝试将以下连接字符串添加到配置中:

 sessionState mode="SQLServer"
 sqlConnectionString="Server=XXXXXX;Database=ASPState;Integrated Security=true"

并收到以下错误:

  

sqlConnectionString属性或其引用的连接字符串不能包含连接选项DatabaseInitial CatalogAttachDbFileName。为了允许这一点,allowCustomSqlDatabase属性必须设置为true,并且应用程序需要被授予不受限制的SqlClientPermission。如果申请没有此权限,请咨询您的管理员。

然后我尝试将allowCustomSqlDatabase="true"添加到连接字符串并收到以下错误:

  

System.Data.SqlClient.SqlException:无效的对象名称't​​empdb.dbo.ASPStateTempApplications'。

看起来它正在尝试连接到tempdb而不是ASPState数据库。

有任何想法如何使用ASPState数据库吗?

干杯

安迪

1 个答案:

答案 0 :(得分:0)

正如它所说here

  

如果未向SQL Server添加会话状态,则在将网站配置为使用SQL Server模式会话状态时,会收到System.Data.SqlClient.SqlException类生成的以下错误消息:

     

无效的对象名称't​​empdb.dbo.ASPStateTempSessions'。

因此,您应该按照上述链接中的步骤1的说明操作,并使用aspnet_regsql.exe生成所需的表格和其他内容。

该工具的完整路径是:

<system drive>:\Windows\Microsoft.NET\Framework\<.NETFrameworkversion>\aspnet_regsql.exe

请看一下:https://stackoverflow.com/a/3151315/5675763

Impotrant Update

来自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来使用更多选项。