ASP.NET sessionState SQLServer模式超时不起作用
我已将sessionState配置为使用下面的自定义SQL服务器,并将其设置为在1分钟后过期.似乎会话始终保留在浏览器和SQL Server上.我甚至将regenerateExpiredSessionId设置为false并且仍然存在相同的问题.我在IIS 7
windows 7 pro下运行asp.net 4.0.
我的web.config配置 <sessionState mode="SQLServer" allowCustomSqlDatabase="true" sqlConnectionString="Data Source=MYCONSQL2008REXPRESS;Initial Catalog=DBASPState; User ID=DB1543Write;Password=test" timeout="1" sqlCommandTimeout="10" regenerateExpiredSessionId="false" stateNetworkTimeout="10" compressionEnabled="true" cookieless="false" /> 我在sessionstate数据库中检查了表ASPStateTempSessions并查看了其中的记录.读写,当前使用此数据库的urrent用户配置所有者权限. “Even Viewer”没有错误. 我已经检查了ASPStateTempSessions表中的值,并且在下面看起来似乎会话比较5小时比较1分钟.似乎asp.net使用另一个时区而不是当前的机器时区将其配置为在1分钟内过期. 我当前的时间是12/17/2011 11:29 AM 有关数据库值的完整详细信息如下. 第一个记录是我第一次访问我的网站时 SessionId,Created,Expires,LockDate,LockDateLocal,LockCookie,Timeout,Locked,SessionItemShort,SessionItemLong,Flags 0wtp4j0traj5e0gydygkyoe22476b033 2011-12-17 17:29:01.677 2011-12-17 17:30:03.903 2011-12-17 17:29:03.873 2011-12-17 11:29:03.873 11 1 False <Binary data> NULL 0 在我按下浏览器上的“刷新”按钮后,记录已使用新的过期时间进行更新,但会话信息仍然存在 0wtp4j0traj5e0gydygkyoe22476b033 2011-12-17 17:29:01.677 2011-12-17 17:37:08.910 2011-12-17 17:36:08.907 2011-12-17 11:36:08.907 13 1 False <Binary data> NULL 0 有任何想法吗? 解决方法
到期时间是UTC.
当SQL会话过期时,它们不会立即从会话表中删除,也不会收到Session_End事件. SQL会话提供程序不会主动监视会话表中的Expires列.相反,会话在从表中删除之前不会“正式”过期,这是通过调用DeleteExpiredSessions存储过程的SQL代理作业完成的.默认情况下,作业配置为每60秒运行一次.当然,这意味着SQL Agent需要运行才能使会话过期.这也意味着在“实际”到期之前,您需要在“名义”到期后至少等待60秒. 如果需要,您可以通过自己调用SP来强制过期. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc – ASP.NET MVC3:调试和发布应用程序设置不工
- ASP.NET MVC和HTML5
- asp.net-mvc – 如何将复选框绑定到asp net mvc中的字符串属
- ASP.NET MVC Urls和IIS集成Windows身份验证
- asp.net-mvc-3 – 关于Razor中嵌套代码块声明的问题
- .net – coreclr的哪个版本?
- asp.net-mvc – 在ASP.NET MVC 3中等效的Flash
- Exchange 2016通过New-mailboxSearch批量删邮件
- asp.net – 构建动态LINQ查询的最佳方法
- .NET Core中Object Pool的简单使用
- ASP.NET GridView用法大全
- asp.net-mvc-3 – 重定向(relativeUrl)重定向到I
- asp.net-mvc-3 – MVC 3不显眼的验证 – 有条件地
- asp.net-mvc – 为什么验证请求取自ASP.net MVC?
- asp.net-mvc – 用于测试目的的假开放ID提供程序
- asp.net-mvc-3 – 在Html.BeginForm()中使用DELE
- asp.net – 如何确定IUSR密码
- ASP.NET性能:没有预编译的Web应用程序
- asp.net-mvc – MVC索引页面和过滤器
- asp.net-core – 如何在ASP.NET Core中实现angul