采访Que - 如何解决ASP.Net实时应用程序页面崩溃问题?

时间:2013-09-18 04:50:56

标签: c# asp.net .net web-config

在实时应用程序中,如果客户端通过显示联系人管理员消息导致页面崩你会怎么做才能解决这个问题呢?

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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

您应首先关闭“联系人管理员”错误消息页面 从像 -

这样的东西
<customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/>

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

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

答案 2 :(得分: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");        
}