我有一個使用System.ServiceModel.ServiceHost的現有自託管REST服務(請參閱本頁底部的示例:https://msdn.microsoft.com/en-us/library/system.servicemodel.servicehost.aspx )Owin自託管服務映射.svc到web api路由(忽略url中的.svc)
我有一個類似於這個httpX:// MyServer:80/SubFolder/Service.svc的地址。歷史上,當我們過去使用SOAP和REST端點時,Svc的終點就在那裏。但現在它只被訪問REST端點的客戶端使用。我需要保持Url不變以支持現有客戶端
我想將其切換到Owin自託管網站。但我不知道如何使路由處理URL的.svc部分,並基本上忽略它。
例如這個工程 httpX:// MyServer的:80 /子文件夾/服務/ GetTest
這不 httpX:// MyServer的:80 /子文件夾/ Service.svc/GetTest
我一直在尋找網址重新編寫選項並找到這些選項,但它們似乎沒有解決我的問題。 https://docs.microsoft.com/en-us/aspnet/web-api/overview/web-api-routing-and-actions/attribute-routing-in-web-api-2
(對不起 - 我不能發表什麼,我看了一下,由於計算器限制更多的例子)
我的啓動是這樣
var server = WebApp.Start<Startup>("httpX://MyServer:80/SubFolder/Service.svc");
和我的路由看起來像這樣
appBuilder.Map("/api", api =>
{
var config = new HttpConfiguration();
config.MapHttpAttributeRoutes();
api.UseWebApi(config);
});
使用此設置,如果我瀏覽到 httpX:// MyServer:80/SubFolder/Service.svc/api/Test I g et a 503.
如果我修改爲這樣,並從瀏覽器中的地址中刪除.svc它的作品。
var server = WebApp.Start<Startup>("httpX://MyServer:80/SubFolder/Service");