在我的web api项目Application_Start()方法中,我正在执行以下操作以允许elmah.axd
RouteTable.Routes.IgnoreRoute("{resource}.axd/{*pathInfo}")
但这需要依赖System.Web.Mvc和相关的dll,比如System.Web.WebPages,我不想在我的web api项目中使用它。有没有办法在不引入所有dll的情况下获得IgnoreRoutes功能?
答案 0 :(得分:0)
遗憾的是,ASP.NET Web API的路由系统中不支持IgnoreRoutes。但是,如果应用程序在ASP.NET中托管(而不是作为SelfHost应用程序托管),您仍然可以向RouteTable添加IgnoreRoute(就像在MVC中一样)。
答案 1 :(得分:0)
WebApi 2.1现在实现了IgnoreRoute扩展方法的一个版本
config.Routes.IgnoreRoute("elmah", "{resource}.axd/{*pathInfo}");
在幕后创建了一个System.Web.Http.Routing.StopRoutingHandler,无论如何都是remapped到System.Web.Routing.StopRoutingHandler。
然而,根据MVC4 WebApi1(由mono提供支持),我无法解决这个问题,但是其他人应该逃脱:
config.Routes.MapHttpRoute(
name: "ignore",
routeTemplate: "{resource}.asp/{*pathInfo}",
handler: new System.Web.Http.Routing.StopRoutingHandler()
);