2

在我的 web api 项目 Application_Start() 方法中,我正在执行以下操作以允许 elmah.axd

RouteTable.Routes.IgnoreRoute("{resource}.axd/{*pathInfo}")

但这需要对 System.Web.Mvc 和相关 dll 的依赖,比如我的 web api 项目中我并不真正想要的 System.Web.WebPages。有没有办法在不引入所有这些 dll 的情况下获得 IgnoreRoutes 功能?

4

2 回答 2

0

遗憾的是,ASP.NET Web API 的路由系统中不支持 IgnoreRoutes。但是,如果应用程序在 ASP.NET 中托管(而不是作为 SelfHost 应用程序托管),您仍然可以将 IgnoreRoute 添加到 RouteTable(就像在 MVC 中一样)。

于 2013-02-26T23:17:22.220 回答
0

WebApi 2.1 现在实现了 IgnoreRoute 扩展方法的一个版本

config.Routes.IgnoreRoute("elmah", "{resource}.axd/{*pathInfo}");

在后台,这会创建一个 System.Web.Http.Routing.StopRoutingHandler ,然后无论如何都会重新映射到 System.Web.Routing.StopRoutingHandler 。

但是在 MVC4 WebApi1(由单声道支持)下我无法解决这个问题,但其他人应该逃脱:

config.Routes.MapHttpRoute(
            name: "ignore",
            routeTemplate: "{resource}.asp/{*pathInfo}",
            handler: new System.Web.Http.Routing.StopRoutingHandler()
);
于 2015-02-04T03:13:09.993 回答