- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们有一组使用 WebApi 2 开发的 RestFul 服务。这些服务将托管在 Azure 上。我有一个 IExceptionLogger 的实现来记录所有未处理的异常。
记录器可以按如下方式在管道中注册
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
//Register the ExceptionLogger
config.Services.Add(typeof(IExceptionLogger), new UnhandledExceptionLogger());
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
}
}
或者可以将其设置为 Owin 中间件,如下所示
public static class SetupExceptionHandlers
{
public static IAppBuilder SetupFilters(this IAppBuilder builder, HttpConfiguration config)
{
config.Services.Add(typeof(IExceptionLogger), new UnhandledExceptionLogger());
return builder;
}
}
然后在管道中注册如下
public class Startup
{
public void Configuration(IAppBuilder app)
{
var config = new HttpConfiguration();
app.SetupFilters(config);
app.UseStageMarker(PipelineStage.Authenticate);
}
}
尝试了解更好/正确的方法是什么。我已经以两种方式注册了它,但没有看到行为有任何差异。我也尝试过同时保留这两个注册,但它仍然有效(没有异常(exception))。
最佳答案
使用这两种方法都没有直接的好处(例如,无论哪种方式都不能使用 DI,并且管道行为不会发生任何变化)。
显然,创建处理程序扩展方法可以让您拥有更干净且更易于维护的代码。特别是如果您要分发中间件。
关于asp.net-mvc - 注册 IExceptionLogger OWIN 与 WebApiConfig,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32188681/
当 Controller 操作抛出异常时,我的异常记录器实现 [IExceptionLogger][1] 被调用两次。 context.RequestContext.Configuration.Ser
我正在尝试设置一个全局异常处理程序,如下所述:Web API Global Error Handling .我已经设置了一个在 Controller 构造函数中抛出异常的情况。但我的异常没有被记录下来
我们有一组使用 WebApi 2 开发的 RestFul 服务。这些服务将托管在 Azure 上。我有一个 IExceptionLogger 的实现来记录所有未处理的异常。 记录器可以按如下方式在管道
根据官方文档中关于实现 IExceptionLogger 的讨论( http://www.asp.net/web-api/overview/testing-and-debugging/web-api-
在 C# 中实现这些处理程序时,我会做类似的事情, public class DefaultExceptionHandler : IExceptionHandler { public Task
我是一名优秀的程序员,十分优秀!