我的问题应该很简单,但不幸的是我没有解决它的运气。
基本上,我有一些由OWIN托管并部署在Azure上的Web API控制器。
我真的需要追踪每个中间件中发生的异常(例如 OAuthAuthorizationServerProvider 或 SignalR Persistent Connections ),但我绝对不知道如何实现它。
app.SetLoggerFactory(new MyLoggerFactory())
定义自定义LoggerFactory并在Startup中分配它,
但是没有记录其他中间件抛出的异常。<customErrors mode="Off"/>
和<deployment retail="false"/>
,Azure拒绝返回除{"message":"an error has occurred"}
之外的任何内容。我尝试了两个Azure Web站点和Azure云服务。应用程序抛出记录任何可能的异常的最佳方法是什么?
感谢您的帮助
答案 0 :(得分:12)
因为你无法使用exceptionFilter捕获所有异常,所以他们建议使用IExceptionLogger和IExceptionHandler来允许Web Api 2中的全局错误处理。
之后,如果它不符合您的需要,您可以构建一个OwinMiddleWare,您将放置在第一个位置(在Authenticate阶段之前),这个中间件可以:
希望这个帮助