asp.net会话状态模式“的SQLServer”(asp.net session state mo

2019-08-17 13:34发布

“我的网站是LIVE,并以LIVE服务器上,而不是在本地主机配置会话超时这个问题有关。”

我有一个会议也即将到期的问题。 链接仅2-5分钟。 我试过很多东西,最后决定将存储在“SQL Server”中的会话模式

在我的web.config文件我有以下代码:

<sessionState mode="SQLServer" cookieless="false" timeout="45"
sqlConnectionString="data source=xxx.xx.xx.xxx;uid=xxxxxxx;pwd=xxxxxxxx"/>

和我都对服务器ASPState的表所需的表。 您可以从下面的图片看到它。

但我当我运行我的应用程序,它会引发以下错误:

“无法使用SQL Server,因为无论ASP.NET 2.0版会话状态不安装SQL服务器上,或ASP.NET不必运行dbo.TempGetVersion存储过程的权限,如果ASP.NET会话状态架构还没有安装完成后,请安装ASP.NET会话状态的SQL Server 2.0或以上版本。如果架构已经安装,请授予对dbo.TempGetVersion存储过程的执行权限无论是ASP.NET应用程序池标识,或SQL Server用户在sqlConnectionString属性指定“。

错误的图片:

我无法了解确切的问题,我怎么能解决这个问题。 任何帮助将不胜感激。

谢谢

Answer 1:

在树中,打开“可编程性”,并首先检查是否存在dbo.TempGetVersion。 也许你还没有安装适当的模式。



Answer 2:

为了得到这个工作对我来说我跑了下列选项命令。

C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regsql.exe -S . -E -ssadd -sstype p

我相信-ssadd选项(“增加了对SQL Server模式会话状态的支持。”)是什么原因造成的正确设置的存储过程。 看到这个链接的完成选项的列表。



Answer 3:

也许你有你的web.config一个坏的标签

正确的例子应该是:

<sessionState 
allowCustomSqlDatabase="true" 
mode="SQLServer" 
sqlConnectionString="data source=localhost;initial catalog=YourAspStateDatabase;user id=yourLogin;password=yourpassword" cookieless="false" timeout="30"/>


Answer 4:

所有这些信息是非常有价值的,但也有根据自己的情况一对夫妇更有价值的音符。

如果你运行该向导它不与-ssadd标志运行。 该-ssadd标志是什么创造了dbo.TempGetVersion程序等程序也是如此。

如果你要自定义服务器/数据库您将要运行的程序如下...

aspnet_regsql.exe -S YourServerName -d YourDatabaseName -ssadd -E -sstype c
  • -S是您的服务器名称标志
  • -D是你的数据库名称标志
  • -ssadd增加了对SQLServerm模式会话状态的支持。 运行-ssremove如果您需要删除的程序。
  • -E使用当前Windows凭据连接到目标数据库设置的东西了。
  • -sstypeç说,这是一个自定义的数据库名称。


Answer 5:

我坚持这一点,并没有一个答案为我工作,以防万一别人有这个问题,这是什么解决我的问题,我跑在cmd:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regsql.exe -C "Data Source=.\SQL2012;Integrated Security=True" -ssadd

万一别人陷在同样的情况我。



文章来源: asp.net session state mode “SQLServer”