我有一個用C#(http://my.site/
)製作的網站,現在我有一個Web API項目,我想合併到該域並在http://my.site/api
上進行收聽。他們是VS2013中的兩個獨立項目。主機WebApi和C#網站在同一個域下
我試着上傳的Web API來/api/
子文件夾中的服務器和(在WebApiConfig.cs仍然routeTemplate: "api/{controller}/{id}"
的WebAPI路線)映射MVC的路線吧,期待默認的(家庭)MVC控制器/api/
迴應。 MVC的路線(在的WebAPI的MVC路由):
routes.MapRoute(
name: "Default",
url: "{controller}", //Also api/{controller}
defaults: new { controller = "Home", action = "Get", id = UrlParameter.Optional }
);
,但我得到「服務器錯誤404」訪問http://my.site/api/
/http://my.site/api/home
等。當我不明白這個錯誤在C#網站的性質(最有可能的設置在根文件夾中),但有人會認爲IIS會提供/api/
文件夾中的默認應用程序。
所以我想知道如果加入WebApiConfig.Register(GlobalConfiguration.Configuration);
到Global.asax
(的Application_Start()),並加入WebApiConfig.cs到App_Start的C#項目文件夾(使用相應的命名空間)會解決這個問題。這看起來太簡單了,所以我懷疑它會起作用,所以我需要有人指出我正確的方向,否則我會犯下回到asmx的罪。
如果不是,我如何在同一個域上有C#網站和WebAPI?
您是否期望WebSiteA能夠收聽並響應WebSiteB的請求? –
我有一個WebForms(C#)網站,我想添加我創建的WebAPI。 – Tiago
爲什麼不把你的邏輯放在一個共享的dll中,並將web api庫添加到你現有的web窗體項目中,並根據需要在庫中創建web api控制器實例。這樣,如果您需要,您仍然可以將其作爲獨立解決方案重新部署,但您可以將控制器直接託管在同一個項目中。我們目前這樣做是因爲我們希望在我們的一個傳統項目中使用web api控制器,完全沒有問題。 – Igor