在实时应用程序中,如果客户端通过显示联系管理员消息而导致页面崩溃。您将如何解决此问题?
在本地环境中,这个问题没有得到解决。与此页面相关的所有数据都是正确的。您尝试了所有可能的方法,但无法找到根本原因。
在实时应用程序中,如果客户端通过显示联系管理员消息而导致页面崩溃。您将如何解决此问题?
在本地环境中,这个问题没有得到解决。与此页面相关的所有数据都是正确的。您尝试了所有可能的方法,但无法找到根本原因。
您应该首先关闭“联系管理员”错误消息页面,例如 -
<customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/>
至
<configuration>
<system.web>
<customErrors mode="Off"/>
</system.web>
</configuration>
这将显示实时环境中实际发生的错误。然后您可以查看错误中显示的堆栈跟踪并分析问题。然后您可以将配置设置恢复为原始 Live 配置。
调试此类问题的最佳工具是确保您在应用程序中正确记录异常。没有它,就很难追踪环境特定的错误。
您可能会尝试的另一件事是使用 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");
}