ローカルで完全に実行される ASP.NET MVC プロジェクトがあります。Controller から継承するコントローラーと、ApiController から継承するコントローラーがあります。私のルートは以下です。ローカルで Visual Studio を使用してプロジェクトを実行すると、完全に機能します。すべてのエンドポイントにヒットし、期待される応答を得ることができます。クラウド サーバー (Windows Server 2008 r2) にデプロイすると、:Controller エンドポイント (/p/{controller}/{action} にあるエンドポイント) のみが機能します。:ApiController のどのエンドポイントも機能しません。それらすべてに対して次のエラーが発生します。
{"$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 で:
routes.MapRoute(
name: "Default",
url: "p/{controller}/{action}/{id}",
defaults: new { controller = "Home", action = "Redirect", id = UrlParameter.Optional }
);
WebApiConfig.cs で:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "{controller}",
defaults: new { }
);