現在コントローラーを2つ持っています。1 つは MVC で、もう 1 つは WebApi コントローラーです。次の設定を使用して、IIS サーバーでこれら 2 つを簡単に公開しました。
WebApiConfig:
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
ルート構成:
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
name: "Default",
url: "{controller}/{action}/{id}",
defaults: new { controller = "MVCControllerName", action = "MVCControllerName", id = UrlParameter.Optional }
);
別の WebApi コントローラーを追加しましたが、公開すると、Web サーバーは次のように言います。
リクエスト URI に一致する HTTP リソースが見つかりませんでした
http://example.com/folder/api/Other?id=45&text=bla
の実装OtherController
:
public void Get(int id, string text)
{
// something simply gets commited to the DB
}
また、発行時に奇妙なことが起こっています...最初の WebApi コントローラーをソリューションから削除しましたが、何らかの理由で、発行時にHTTP GET 要求を介してその WebApi を呼び出すことができます! 無くなったのに!
OTOH、デバッグモードで正常に動作します..
何が起きてる?
編集:問題は私のコードではなく、VS の公開機能にあるようです。それは今までずっと働いてきました。ファイルをサーバーに手動でコピーする必要がありましたが、これはいわゆる「ワンクリック公開」のポイントではありません。他の同様の SO の質問は、SP2 でまだ修正されていない VS のバグであることを示しているようです。