2013-05-02 18 views
5

私は完全にローカルで動作するASP.NET MVCプロジェクトを持っています。これにはControllerから継承するいくつかのコントローラと、ApiControllerから継承するコントローラがあります。私のルートは以下の通りです。 Visual Studioを使用してプロジェクトをローカルで実行すると、完全に機能します。私はすべてのエンドポイントをヒットし、期待される応答を得ることができます。クラウドサーバー(Windows Server 2008 r2)に展開すると、コントローラのエンドポイント(/ p/{controller}/{action}のもの)のみが動作します。 ApiControllerが動作するエンドポイントはありません。MVC WebApiエンドポイントは本番環境では動作しませんが、通常のエンドポイントでは実現します

{"$id":"1","Message":"No HTTP resource was found that matches the request URI 'http://DOMAIN/CONTROLLER'.","MessageDetail":"No type was found that matches the controller named 'CONTROLLER'."} 

マイルート::私はそれらのすべてのために、次のエラーを取得RouteConfig.csで

:WebApiConfig.csで

routes.MapRoute(
      name: "Default", 
      url: "p/{controller}/{action}/{id}", 
      defaults: new { controller = "Home", action = "Redirect", id = UrlParameter.Optional } 
     ); 

config.Routes.MapHttpRoute(
     name: "DefaultApi", 
     routeTemplate: "{controller}", 
     defaults: new { } 
    ); 
+0

Web Apiコントローラのプレフィックスを使用していないため、経路が混在している可能性があります。私は、Webアプリケーションのプレフィックスで、デフォルトのプロジェクトのようにrouteTemplate: "api/{controller}"のいずれかを試してみるか、MVCルートを無効にしてWeb APIだけを試してみることをお勧めします。 – tucaz

+0

両方とも試しましたが、どちらの仕事も – carlbenson

+0

エルマをインストールしましたか?何かエラーが見えますか? –

答えて

0

私はコピー新しいwebapiプロジェクトのコードとそれが動作します。 VMに依存しない依存関係ではなく、古いプロジェクトで何らかの構成上の問題があったに違いないが、実際の原因はまだ分かりません。

+1

プロジェクトを比較してその違いを確認できませんか? – Pete

+0

diffプロジェクトは本当に面白いです。お願いします –

0

あり、以前にこれにいくつかの関連の質問があり、HTTP 404 Page Not Found in Web Api hosted in IIS 7.5

は、プロジェクトの差分を取得するために素晴らしいこと、答えは新しいAPIプロジェクトを作成し、同じであったが、実際の問題は、いくつかの原因がありました。

関連する問題