2

現在コントローラーを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 のバグであることを示しているようです。

4

0 に答える 0