“asp.net会话状态模式”;SQLServer";
“我的网站处于活动状态。此问题与在活动服务器上而不是本地主机上配置会话超时有关。” 我遇到会话过早过期的问题。链接只需2-5分钟。我尝试了很多方法,最后决定以“SQL Server”模式存储会话 在我的web.config文件中,我有以下代码:“asp.net会话状态模式”;SQLServer";,asp.net,sql-server,session,session-state,session-timeout,Asp.net,Sql Server,Session,Session State,Session Timeout,“我的网站处于活动状态。此问题与在活动服务器上而不是本地主机上配置会话超时有关。” 我遇到会话过早过期的问题。链接只需2-5分钟。我尝试了很多方法,最后决定以“SQL Server”模式存储会话 在我的web.config文件中,我有以下代码: <sessionState mode="SQLServer" cookieless="false" timeout="45" sqlConnectionString="data source=xxx.xx.xx.xxx;uid=xxxxxxx;pw
<sessionState mode="SQLServer" cookieless="false" timeout="45"
sqlConnectionString="data source=xxx.xx.xx.xxx;uid=xxxxxxx;pwd=xxxxxxxx"/>
我有服务器上ASPState表中所需的所有表。你可以从下图中看到它
但当我运行应用程序时,它会抛出以下错误:
无法使用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用户。“
错误图像:
我无法理解确切的问题以及如何解决它。任何帮助都将不胜感激
谢谢您在树中打开“可编程性”,首先检查dbo.TempGetVersion是否存在。可能您没有安装正确的架构。可能您的web.config中有一个错误的标记 一个正确的例子应该是:
<sessionState
allowCustomSqlDatabase="true"
mode="SQLServer"
sqlConnectionString="data source=localhost;initial catalog=YourAspStateDatabase;user id=yourLogin;password=yourpassword" cookieless="false" timeout="30"/>
为了让它对我起作用,我使用以下选项运行了该命令
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regsql.exe -S . -E -ssadd -sstype p
我相信
-ssadd
选项(“添加对SQL Server模式会话状态的支持”)是什么导致它正确设置了存储过程。请参阅此以获取完整的选项列表。我被这个问题困住了,没有一个答案对我有效,只是为了防止其他人遇到这个问题,这就是解决我问题的原因,我在cmd中运行:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regsql.exe -C "Data Source=.\SQL2012;Integrated Security=True" -ssadd
以防其他人陷入和我一样的困境。所有这些信息都非常有价值,但根据您的情况,还有一些更重要的提示 如果运行向导,它不会使用-ssadd标志运行。创建dbo.TempGetVersion过程和其他过程的是-ssadd标志 如果您要访问自定义服务器/数据库,则需要按以下方式运行程序: 跟着
aspnet_regsql.exe -S YourServerName -d YourDatabaseName -ssadd -E -sstype c
- -S是您的服务器名标志
- -D是您的数据库名称标志
- -ssadd添加了对SQLServerm模式会话状态的支持。如果需要删除这些过程,请运行-ssremove
- -E使用当前Windows凭据连接到目标数据库以进行设置
- -sstype c表示这是一个自定义数据库名称
aspnet_regsql-W
创建的55个存储过程列表中不存在,因此我在新安装的机器上成功地解决了这个问题。您可以从VS命令提示符运行此命令,“aspnet_regsql.exe-W”更易于配置。它打开了gui。在尝试了apsnet_regsql.exe命令args的许多变体之后,这是一个适合我的。其他人没有安装必要的存储过程