私は完全にローカルで動作する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 { }
);
Web Apiコントローラのプレフィックスを使用していないため、経路が混在している可能性があります。私は、Webアプリケーションのプレフィックスで、デフォルトのプロジェクトのようにrouteTemplate: "api/{controller}"のいずれかを試してみるか、MVCルートを無効にしてWeb APIだけを試してみることをお勧めします。 – tucaz
両方とも試しましたが、どちらの仕事も – carlbenson
エルマをインストールしましたか?何かエラーが見えますか? –