在使用net开发webapi的时候,有时候程序异常了,外面只能看到一个错误:an error occur
怎么才能将具体的 错误堆栈信息输出来呢?
1.在startup.cs文件中添加如下代码就可以将错误信息输出:
GlobalConfiguration.Configure(c => c.IncludeErrorDetailPolicy = IncludeErrorDetailPolicy.Always);
代码如下:
2.Global.asax中捕获api错误信息:
protected void Application_Error(object sender, EventArgs e)
{
#region Error Log
var exp = HttpContext.Current.Server.GetLastError();
var sbErrorMsg = new StringBuilder();
sbErrorMsg.Append(DateTime.Now);
sbErrorMsg.Append(" 发生一个系统错误,如下:");
sbErrorMsg.Append("
");
sbErrorMsg.Append("--------------------------------------------------------------------------------");
sbErrorMsg.Append("
");
sbErrorMsg.Append("客户机IP:");
sbErrorMsg.Append(HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"]);
sbErrorMsg.Append("
错误地址:");
sbErrorMsg.Append(Request.Url);
sbErrorMsg.Append("
上一个URL:");
sbErrorMsg.Append((Request.UrlReferrer != null ? Request.UrlReferrer.AbsoluteUri : ""));
sbErrorMsg.Append("
");
var error = Common.ExceptionHelper.GetError(sbErrorMsg.ToString(), exp);
Console.WriteLine(error);
#endregion
}