【问题标题】:ASP.NET Session has expired - Event Id 1309ASP.NET 会话已过期 - 事件 ID 1309
【发布时间】:2010-06-30 15:09:50
【问题描述】:

一些简单的细节:

我在 IIS6 上运行 ASP.NET 4.0.30319.0。我托管一个包含 ReportViewer 的网站已经有一段时间了(大约 3 年)。 4 月,我升级到 4.0 运行时,顺利运行了几个月。

现在,我突然开始看到托管 ReportViewer 的页面上发生了相当多的会话超时异常。事件查看器记录了许多这样的事件,当涉及到实际能够查看页面时,它是相当偶然的。点击页面一次,您可以看到生成的报告。刷新,出现错误。再次刷新,它会返回...

我搜索了许多论坛试图找出问题 - 大多数似乎建议更改 SQL 服务器设置(我没有使用)、更改 AsyncRendering="False"、更改应用程序池设置或超时.我不愿意更改任何这些,因为它仅在一周前起作用,没有这个问题。

缺少 Windows 更新,或者有人在我不知情的情况下对服务器进行了更改,我没有想法......

更新

我尝试增加应用程序池中的最大虚拟内存,但没有奏效。

【问题讨论】:

  • 您使用的是 inProc、状态服务器还是 sql 支持的会话?
  • 单一网络服务器,还是农场?它只发生在生产中吗?粘性会话?你使用缓存吗?
  • 使用 inProc,应用程序位于单个 Web 服务器上。会话中存储的所有内容都是用户的身份验证状态 - 没有大数据集,否则。

标签: c# asp.net iis-6 .net-4.0 session-timeout


【解决方案1】:

在升级到 .NET 4.0 和 Report Viewer 2010 之后,我遇到了几乎相同的问题。我同时进行了两次升级,现在我不确定是谁的错。在我的情况下,刷新确实有效,但用户在夜间保持页面打开,然后在第二天早上单击刷新,此时会话已经丢失。我们的应用程序池每晚都会回收。

我相信报告查看器应该使会话保持活动状态,但事实并非如此。报表查看器没有任何类型的请求。然后,当会话结束时,它会丢失其存储的状态,无论是会话到期还是应用程序回收。我也在使用 InProc,我尝试更改它,但报表查看器无法与 State Server 一起使用。我稍后会再试一次,以远离 InProc。

查看我的类似question

我还没有将它投入生产,但是我给了带有报告的 aspx 页面一个自定义页面来派生,我会在那里检查会话是否实际超时。它基本上是重新加载报告页面,而不是在期望会话的地方进行回发。

if (Context.Session != null)
        {
            //Tested and the IsNewSession is more advanced then simply checking if 
            // a cookie is present, it does take into account a session timeout, because 
            // I tested a timeout and it did show as a new session
            if (Session.IsNewSession)
            {
                // If it says it is a new session, but an existing cookie exists, then it must 
                // have timed out (can't use the cookie collection because even on first 
                // request it already contains the cookie (request and response
                // seem to share the collection)
                string cookieHeader = Request.Headers["Cookie"];
                if ((null != cookieHeader) && (cookieHeader.IndexOf("ASP.NET_SessionId") >= 0))
                {
                    Response.Redirect(Request.Url.ToString());
                }
            }
        }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-12
    • 2014-06-25
    • 2017-10-05
    • 1970-01-01
    • 1970-01-01
    • 2016-08-04
    • 2013-12-03
    相关资源
    最近更新 更多