“我的网站是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属性指定“。
错误的图片:
我无法了解确切的问题,我怎么能解决这个问题。 任何帮助将不胜感激。
谢谢
在树中,打开“可编程性”,并首先检查是否存在dbo.TempGetVersion。 也许你还没有安装适当的模式。
为了得到这个工作对我来说我跑了下列选项命令。
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regsql.exe -S . -E -ssadd -sstype p
我相信-ssadd
选项(“增加了对SQL Server模式会话状态的支持。”)是什么原因造成的正确设置的存储过程。 看到这个链接的完成选项的列表。
也许你有你的web.config一个坏的标签
正确的例子应该是:
<sessionState
allowCustomSqlDatabase="true"
mode="SQLServer"
sqlConnectionString="data source=localhost;initial catalog=YourAspStateDatabase;user id=yourLogin;password=yourpassword" cookieless="false" timeout="30"/>
所有这些信息是非常有价值的,但也有根据自己的情况一对夫妇更有价值的音符。
如果你运行该向导它不与-ssadd标志运行。 该-ssadd标志是什么创造了dbo.TempGetVersion程序等程序也是如此。
如果你要自定义服务器/数据库您将要运行的程序如下...
aspnet_regsql.exe -S YourServerName -d YourDatabaseName -ssadd -E -sstype c
- -S是您的服务器名称标志
- -D是你的数据库名称标志
- -ssadd增加了对SQLServerm模式会话状态的支持。 运行-ssremove如果您需要删除的程序。
- -E使用当前Windows凭据连接到目标数据库设置的东西了。
- -sstypeç说,这是一个自定义的数据库名称。
我坚持这一点,并没有一个答案为我工作,以防万一别人有这个问题,这是什么解决我的问题,我跑在cmd:
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regsql.exe -C "Data Source=.\SQL2012;Integrated Security=True" -ssadd
万一别人陷在同样的情况我。