jac*_*erj 13 sql-server asp.net session session-state session-timeout
"我的网站是LIVE.这个问题与LIVE服务器上的配置会话超时有关,而与localhost无关."
我的会话过期很快就会出现问题.仅在2-5分钟内链接.我尝试了很多东西,最后决定将会话存储在"SQL Server"模式下
在我的web.config文件中,我有以下编码:
<sessionState mode="SQLServer" cookieless="false" timeout="45"
sqlConnectionString="data source=xxx.xx.xx.xxx;uid=xxxxxxx;pwd=xxxxxxxx"/>
Run Code Online (Sandbox Code Playgroud)
我拥有服务器上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应用程序池标识或Sql Server用户在sqlConnectionString属性中指定."
错误图片:

我无法理解确切的问题以及如何解决它.任何帮助将不胜感激.
谢谢
Ken*_*enn 33
为了让这个对我有用,我使用以下选项运行命令.
C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regsql.exe -S . -E -ssadd -sstype p
Run Code Online (Sandbox Code Playgroud)
我相信-ssadd选项("添加对SQL Server模式会话状态的支持.")是导致它正确设置存储过程的原因.请参阅此链接以获取选项列表.
所有这些信息都非常有价值,但根据您的情况,还有一些更有价值的注释。
如果您运行该向导,它不会使用 -ssadd 标志运行。-ssadd 标志是创建 dbo.TempGetVersion 过程和其他过程的原因。
如果您要使用自定义服务器/数据库,您将需要按如下方式运行该程序...
aspnet_regsql.exe -S YourServerName -d YourDatabaseName -ssadd -E -sstype c
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33698 次 |
| 最近记录: |