Asp.net 如何使用WebAPI捕获除允许根URI和帮助URI之外的所有URI

Asp.net 如何使用WebAPI捕获除允许根URI和帮助URI之外的所有URI,asp.net,asp.net-web-api,Asp.net,Asp.net Web Api,我有一个asp.net WebApi REST服务,我想在这里为404格式化我自己的消息(即找不到路由)。我正在使用属性路由 我的所有控制器路由都嵌套在v1/下。另外,对于根url,我显示了一个html页面(即我提供了一个default.htm文件),在/help下也显示了一些帮助(通过mvc帮助页面)。所以,我不希望“一网打尽”的路由截获这些URL 我发现,即使和属性路由一起使用,它似乎也能工作,只是它也会捕获我的根页面 我尝试了以下方法 httpConfig.Routes.MapHttpRo

我有一个asp.net WebApi REST服务,我想在这里为404格式化我自己的消息(即找不到路由)。我正在使用属性路由

我的所有控制器路由都嵌套在
v1/
下。另外,对于根url,我显示了一个html页面(即我提供了一个default.htm文件),在/help下也显示了一些帮助(通过mvc帮助页面)。所以,我不希望“一网打尽”的路由截获这些URL

我发现,即使和属性路由一起使用,它似乎也能工作,只是它也会捕获我的根页面

我尝试了以下方法

httpConfig.Routes.MapHttpRoute(
        name: "ResourceNotFound",
        routeTemplate: "{uri}/{*v1}",
        defaults: new { controller = "ResourceNotFound", uri = RouteParameter.Optional });
ie添加了
{*v1}
,但是这也不起作用。我得到了以下信息(我的所有捕获控制器名为
ResourceNotFoundController


未找到与请求URI名称匹配的HTTP资源http://localhost/myapi/'.
在与请求匹配的控制器“ResourceNotFound”上未找到任何操作。
我尝试了各种不同的
routeTemplate
模式,但无法在允许根页面通过的地方工作

有人知道我怎么做吗


提前感谢您的帮助

在之前为根页面添加路由,以便catch allShow当前配置的路由不会捕获该路由。
 <Error>
    <Message>
      No HTTP resource was found that matches the request URI 'http://localhost/myapi/'.
    </Message>
    <MessageDetail>
       No action was found on the controller 'ResourceNotFound' that matches the request.
    </MessageDetail>
 </Error>