1

在实时应用程序中,如果客户端通过显示联系管理员消息而导致页面崩溃。您将如何解决此问题?

在本地环境中,这个问题没有得到解决。与此页面相关的所有数据都是正确的。您尝试了所有可能的方法,但无法找到根本原因。

4

3 回答 3

1

您应该首先关闭“联系管理员”错误消息页面,例如 -

<customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/>

<configuration>
    <system.web>
        <customErrors mode="Off"/>
    </system.web>
</configuration>

这将显示实时环境中实际发生的错误。然后您可以查看错误中显示的堆栈跟踪并分析问题。然后您可以将配置设置恢复为原始 Live 配置。

于 2013-09-18T05:19:50.037 回答
1

调试此类问题的最佳工具是确保您在应用程序中正确记录异常。没有它,就很难追踪环境特定的错误。

于 2013-09-18T04:53:14.930 回答
0

您可能会尝试的另一件事是使用 Global.asax 中的 Application_Error 事件处理程序来捕获异常并在发生错误时发送电子邮件。

void Application_Error(object sender, EventArgs e) 
{ 
    // Code that runs when an unhandled error occurs
    // At this point we have information about the error
    HttpContext ctx = HttpContext.Current;

    Exception exception = ctx.Server.GetLastError();


    string errorInfo =
        "<br><b>Time:</b> " + DateTime.Now.ToString() +
        "<br><b>Offending URL:</b> " + ctx.Request.Url.ToString() +
        "<br><b>Referring URL:</b> " + ctx.Request.UrlReferrer.ToString() +
        "<br><br><b>Query String:</b> " + ctx.Request.QueryString.ToString() +
        "<br><br><b>IP Address:</b> " + ctx.Request.UserHostAddress +
        "<br><br><b>Form:</b> " + ctx.Request.Form.ToString() +
        "<br><br><b>Source:</b> " + exception.Source +
        "<br><br><b>Message:</b> " + exception.Message +
        "<br><br><b>Stack trace:</b> " + exception.StackTrace;        

    EmailNotifier.SendError(errorInfo, "Website Error");        
}
于 2013-09-18T11:26:06.847 回答