2013-12-23 15 views
9

hereのように、Visual Studio 2012で既存のMVC4/WebAPI1プロジェクトをMVC5/WebAPI2にアップグレードしました。サイトは期待どおりに機能しました。私はその後、属性ベースのルーティングの指示に従いましたhere - 私はコントローラのために404を得続けます。私のステップは次のとおりです:WebApi2属性ルーティング404

  • config.MapHttpAttributeRoutes();を追加します。 WebApiConfig.Registerで
  • config.EnsureInitialized()を追加します。 WebApiConfig.Register
  • 私が設定した後、休憩を入れたときのテストルートが登録されつつあることがわかり、私のテストコントローラ

にルート属性を追加しますNuGet

  • からAttributeRouting(ASP.NET WebAPIの)を追加します。 .EnsureInitialized()。しかし、そのルートにヒットしようとすると、404が表示されます。

    リクエストを検査してルーティングテーブルがどのように一致しているかを確認する方法がある場合は、

  • +1

    'Add AttributeRouting(ASP.NET WebAPI)from NuGet'と言ったときにどのパッケージを参照していますか...属性ルーティングはWeb APIに組み込まれており、それを動作させるために他の特別なパッケージをインストールする必要はありません。 .. Tim McCallのアトリビュートルーティングパッケージを代わりにインストールすることができますか? –

    +0

    はい、そうでした。私は変更を元に戻しました(ソース管理の良さに感謝します) –

    答えて

    0

    Route Debuggerを使用すると、すべてのルートを検査できます。これをカバーしていMSDNからの公式のポストがあります:

    +24

    ルートデバッガはWeb API 2で動作しないようです... – pFrenchie

    +0

    うん、それは私にとってはうまくいきません。 –

    13

    私はほとんど同じ問題を抱えていました。そして、実用的な解決策を見つけることができません。 ルートデバッガは実際にはWeb API 2で動作しません。 最後に、ルート属性を含むWeb API 2をデバッグするための作業方法を見つけました。

    Microsoft.AspNet.WebApi.HelpPage

    Нopeこれは、誰かがデバッグの数時間を節約することができます。

    +0

    これはどのように役立ちましたか?あなたはそのリンクで何をしたのか説明できますか?私はリンクに記載されているパッケージをインストールしようとしましたが、ルートデバッガはまだ動作しません。 – stone

    +4

    私は、彼が意図したことは、HelpPageパッケージをインストールすることで/ helpにナビゲートして問題を特定できるWebApiルート、URLパラメータ、および/またはボディパラメータをすべて表示できることです。 –

    +0

    単にインストールする私は助けてくれましたが、Microsoft.AspNet.WebApi名前空間の中には、欠落していたはずのいくつかの依存パッケージがインストールされているためだと思います。私は神秘的で欠けている依存症候群の症例だと思う。最近、私にたくさん起こるようです。 : - \ – egandalf

    関連する問題