私はC#(http://my.site/
)で作成されたWebサイトを持っています。今、私はそのドメインにマージしてhttp://my.site/api
で聞きたいWeb APIプロジェクトを持っています。彼らはVS2013の2つの別々のプロジェクトです。ホストWebApiと同じドメインのC#サイト
私はデフォルト(ホーム)MVCコントローラが/api/
に応じることを期待し、(WebApiConfig.csまだrouteTemplate: "api/{controller}/{id}"
でWEBAPIルート)サーバーに/api/
サブフォルダへのWeb APIをアップロードしようとしたし、それにMVCのルートをマップします。 (WebAPIののMVCのルーティング中)MVCルート:
routes.MapRoute(
name: "Default",
url: "{controller}", //Also api/{controller}
defaults: new { controller = "Home", action = "Get", id = UrlParameter.Optional }
);
しかし、私はC#のウェブサイトで、「サーバーエラー404」などhttp://my.site/api/
/http://my.site/api/home
にアクセスしたときに、私は、このエラーの性質を理解していないが(最も可能性が高い設定の取得ルートフォルダで)、IISが/api/
フォルダ内のデフォルトのアプリケーションを提供すると考えられます。
は、だから私はWebApiConfig.Register(GlobalConfiguration.Configuration);
からGlobal.asax
(のApplication_Start())を追加し、追加WebApiConfig.csにApp_StartC#プロジェクトのフォルダ(およびそれぞれの名前空間を使用しては)問題を解決するかどうかを知りたいです。これは本当に簡単すぎるので、私はそれがうまくいくとは思えないので、私は正しい方向に私を向ける人が必要です、または私はasmxに戻る罪を犯すでしょう。
もしそうでなければ、C#WebサイトとWebAPIを同じドメインにどのように持つことができますか?
WebSiteAがWebSiteBのリクエストを聞いて応答することを期待していますか? –
私はWebForms(C#)のWebサイトを持っており、作成したWebAPIを追加したいと思います。 – Tiago
あなたのロジックを共有dllに入れて、既存のWebフォームプロジェクトにWeb APIライブラリを追加し、必要に応じてWebアプリケーションライブラリを呼び出してライブラリに呼び出してみましょう。そうすれば、必要な場合にはスタンドアロンソリューションとして再展開することができますが、同じプロジェクトで直接コントローラをホストすることができます。私たちは現在、Web APIコントローラをレガシープロジェクトの1つに必要としているので、これはまったく問題はありません。 – Igor