我正在构建一个.NET WebApi应用程序,我想建立一个全局错误处理程序(基本上是一个函数,当异常从应用程序的任何地方冒出来时执行)。 this link感谢对此的支持,但提供了几种解决方法。不幸的是,我似乎找不到任何有用的文档。
以下是我的要求:
我该如何设置呢?
答案 0 :(得分:7)
如果您更新到Web API v2.1,可通过Nuget使用此命令获取:
Install-Package Microsoft.AspNet.WebApi
您可以通过继承Exception Logger来创建全局异常处理程序。
以下是一个例子:
class TraceExceptionLogger : ExceptionLogger
{
public override void LogCore(ExceptionLoggerContext context)
{
Trace.TraceError(context.ExceptionContext.Exception.ToString());
}
}
此处发布说明中的更多详细信息:http://www.asp.net/web-api/overview/releases/whats-new-in-aspnet-web-api-21#global-error
答案 1 :(得分:0)
您应该注意几个选项:
活动 AppDomain.CurrentDomain.FirstChanceException :
无论是否处理,都会触发每个例外。在特定处理程序之前使用它来记录等。
活动 AppDomain.CurrentDomain.UnhandledException:
将针对代码
中未处理的每个异常触发您需要在有权访问您的IOC容器等的服务中创建处理程序