【发布时间】:2014-08-16 11:40:05
【问题描述】:
我在 web.config 中处理了错误 500 和 404
<httpErrors errorMode="Custom" existingResponse="Replace"> --><!--defaultPath="/Errors/NotFound"--><!--
<remove statusCode="404" subStatusCode="-1"/>
<remove statusCode="500" subStatusCode="-1"/>
<error statusCode="404" path="/Errors/NotFound" responseMode="ExecuteURL"/>
<error statusCode="500" path="/Errors/ServerError" responseMode="ExecuteURL"/>
</httpErrors>
但问题是目前我在事件查看器及其相应的堆栈跟踪中看不到 500 和 404 错误
我已使用 Microsoft 应用程序洞察对 Application_Error 进行错误处理,但它不像事件查看器那样具有描述性
protected void Application_Error(object sender, EventArgs e)
{
var exception = Server.GetLastError();
var httpStatusCode = (int)HttpStatusCode.InternalServerError;
try
{
httpStatusCode = ((HttpException) exception).GetHttpCode();
}
catch (Exception)
{
}
var dateTime = DateTime.Now.ToString();
var ip = Request.ServerVariables["REMOTE_ADDR"];
var userName = string.Empty;
try
{
userName = HttpContext.Current.User.Identity.Name;
}
catch
{
}
var url = string.Empty;
if (HttpContext.Current != null)
{
url = HttpContext.Current.Request.Url.ToString();
}
var log = string.Format("Url: {0} , httpStatusCode: {1}, " +
"dateTime: {2}, exceptionMessage: {3}, " +
"ipAddress: {4}, userName: {5} ",
url, httpStatusCode, dateTime, exception.Message, ip, userName);
ServerAnalytics.CurrentRequest.LogEvent(log);
}
我需要像事件查看器一样清楚地记录错误
我该怎么办?
还有哪些其他选择? newrelic,应用洞察?
【问题讨论】:
标签: c# asp.net-mvc error-handling