2013-12-23 108 views
9

我按照here的描述將現有的MVC4/WebAPI1項目升級到Visual Studio 2012中的MVC5/WebAPI2。該網站按預期工作。然後我遵循基於屬性的路由發現here - 除了我一直得到控制器的404。我的步驟如下:WebApi2屬性路由404

  • Add config.MapHttpAttributeRoutes();在WebApiConfig.Register
  • Add config.EnsureInitialized();在WebApiConfig.Register
  • 從的NuGet
  • 添加AttributeRouting(ASP.NET的WebAPI)
  • 添加路由我的測試控制器屬性

我看到,當我把一個破發後配置的測試路線是越來越登記.EnsureInitialized()。然而,試圖按這條路線給我一個404.

如果有什麼方法可以檢查請求並查看路由表是如何匹配的?

+1

當你說'從NuGet'添加AttributeRouting(ASP.NET WebAPI)時,你指的是哪個包...屬性路由是內置到Web API中的,你不需要安裝任何其他額外的包來使它工作。 ..你有機會安裝Tim McCall的屬性路由包嗎? –

+0

是的,是的。我恢復了更改(感謝善良的源代碼控制) –

回答

13

我有幾乎相同的問題。並找不到任何工作解決方案。 路由調試器實際上不適用於Web API 2. 最後,我發現了一種調試Web API 2的工作方式,包括路由屬性。

Microsoft.AspNet.WebApi.HelpPage

Нope這可以幫助別人節省調試運行幾個小時。

+0

這有幫助嗎?你能解釋你對這個鏈接做了什麼嗎?我嘗試安裝鏈接中提到的軟件包,但Route Debugger仍然不起作用。 – stone

+4

我認爲他的意思是,通過安裝HelpPage軟件包,您將能夠導航到/ help並查看所有您的WebApi路徑,URL參數和/或身體參數,從中您可以查明問題 –

+0

只需安裝它幫助了我 - 但我認爲只是因爲它安裝了一些我一定遺漏的依賴包 - 所有這些都在Microsoft.AspNet.WebApi命名空間中。我認爲這是一種神祕缺失依賴綜合症。似乎最近發生在我身上很多事情。 : - \ – egandalf