Sys.WebForms.PageRequestManagerServerErrorException / HTTP1.1内部服务器错误

时间:2014-08-21 22:08:37

标签: c# asp.net ajax webforms updatepanel

我已经仔细阅读了几个星期的论坛,现在尝试了不同的解决方案,但似乎没有任何帮助。这是我的问题:

我创建了一个ASP.NET Web应用程序,用于在Service Desk设置中显示仪表板样式的指标。客户端在服务台房间有大屏幕,显示我的网络应用程序的特定页面。

有些页面使用UpdatePanel,其他页面使用$ .ajax每15秒调用一次代码(我为ajax调用设置了各种[WebMethod])。

这些仪表板大约工作了一天,可能是2天,然后停止刷新,并且可以在控制台中找到上述错误消息。检查ajax方法的错误显示它们点击了ajax调用的'error:'部分。

以下是我试图无效的解决方案:

EnableSessionState="False"标题中添加了<%@ Page %>

validateRequest="false"标题中添加了<%@ Page %>

enableEventValidation="false"标题中添加了<%@ Page %>

在我的网络方法中添加了try-catch语句以捕获错误。

添加了Global.asax并覆盖了Application_Error。使其写入应用程序事件日志。示例如下。

Exception exc = Server.GetLastError().GetBaseException();
        if (!EventLog.SourceExists("Dashboards"))
        {
            EventLog.CreateEventSource("Dashboards", "Dashboard");
        }

        EventLog log = new EventLog();
        log.Source = "Dashboards";
        log.WriteEntry(exc.ToString());

        Server.ClearError();

永远不会调用此Global.asax异常(据我所知),我从未记录任何异常。

我无法想到与此相关的任何其他故障排除。

如果我不得不猜测,我会说这是导致问题的每15秒ajax / updatepanel调用。该应用程序在Server 2012上的IIS v8上运行。也许IIS认为它正在获得DDOS或类似的东西?另一种可能性是我在后面的代码(aspx.cs)中运行了各种线程来更新ajax调用然后从中获取的信息。也许线程会以某种方式被杀死?

我目前缺乏想法。任何帮助与故障排除将不胜感激。我也非常乐意上传更多代码作为示例。

感谢任何能够提供帮助的人。

1 个答案:

答案 0 :(得分:0)

经过广泛的研究,我设法解决了这个问题。

这些网页自然是长期运行的(它们是在服务台环境中不断显示和更新的仪表板),并且它们具有各种长时间运行的线程,可在后台执行操作。

IIS具有回收应用程序池的功能,默认情况下,间隔设置为29小时,这恰好是内部服务器错误的间隔。

由于这是此服务器上运行的唯一应用程序,并且有少数计算机将访问此网站,因此我禁用了应用程序池回收。这立即解决了这个问题。

我将定期检查服务器,以确保此更改不会导致任何其他不利问题,但到目前为止一直很好。

希望这有助于其他任何有长期运行的Web应用程序出现此问题的人。