Asp.net web api WebApi2属性路由404

Asp.net web api WebApi2属性路由404,asp.net-web-api,routeattribute,Asp.net Web Api,Routeattribute,如前所述,我在Visual Studio 2012中将现有的MVC4/WebAPI1项目升级为MVC5/WebAPI2。现场工作如期进行。然后,我按照找到的基于属性的路由的说明进行操作——除了我一直在为控制器获取404。我的步骤是: 添加config.maphttpAttribute路由();在WebApiConfig.Register中 添加config.EnsureInitialized();在WebApiConfig.Register中 从NuGet添加AttributeRouting(

如前所述,我在Visual Studio 2012中将现有的MVC4/WebAPI1项目升级为MVC5/WebAPI2。现场工作如期进行。然后,我按照找到的基于属性的路由的说明进行操作——除了我一直在为控制器获取404。我的步骤是:

  • 添加config.maphttpAttribute路由();在WebApiConfig.Register中
  • 添加config.EnsureInitialized();在WebApiConfig.Register中
  • 从NuGet添加AttributeRouting(ASP.NET WebAPI)
  • 在我的测试控制器上添加路由属性
当我在config.EnsureInitialized()之后放置一个中断符时,我看到测试路由正在注册。然而,试图击中那条路线给了我一个404


如果有任何方法可以检查请求并查看路由表是如何匹配的?

您可以使用
路由调试器
检查所有路由。MSDN发布了一篇官方帖子,内容包括:


    • 我也遇到了几乎相同的问题。而且找不到任何有效的解决办法。 路由调试器实际上不适用于Web API 2。 最后,我找到了一种调试WebAPI2(包括路由属性)的有效方法


      希望这可以帮助用户节省几个小时的调试时间。

      当您说
      addattributerouting(ASP.NET WebAPI)时,您指的是哪个软件包从NuGet
      …属性路由内置于Web API中,您无需安装任何其他额外的包即可使其正常工作…您是否碰巧安装了Tim McCall的属性路由包?是的,确实如此。我恢复了更改(感谢上帝的源代码管理),这有什么帮助?你能解释一下你用那个链接做了什么吗?我尝试安装链接中提到的包,但Route Debugger仍然无法工作。我认为他的意思是,通过安装HelpPage包,您可以导航到/help并查看所有WebApi路由,URL参数和/或正文参数,您可以从中找出问题简单地安装它帮助了我-但我认为这只是因为它安装了几个我一定丢失的依赖项包-所有这些都在Microsoft.AspNet.WebApi命名空间中。我认为这是一种神秘的缺失依赖综合症。最近我似乎经常遇到这种事-\嗯。。安装帮助页面对我来说不起作用-但是,它确实制作了一些非常好的帮助页面,并且正确地列举了我的路线。。但我仍然收到404个错误。FWIW: