我們目前有一箇舊的傳統WCF服務,我真的不想維護,但仍有幾個客戶端可以訪問。我們目前在Azure的WEB API 2中運行所有的API服務。要啓用向後兼容性我希望使用路由屬性,像這樣來模擬網絡API的WCF路由:在WEB API中模擬WCF路由2
[RoutePrefix("registration.svc")]
public class RegistrationDeprecatedController : ApiController
{
[HttpPost]
[Route("login")]
public async Task<HttpResponseMessage> Login(CredentialModel creds)
{...
本地運行,這就像一個夢。只要我發佈到Azure AppService,但是我得到的所有內容都是404未找到。具體路線問題:
/registration.svc/login
我懷疑是IIS主機有.svc路由文件關聯處理請求作爲WCF調用。在線廣泛的搜索未能找到任何有關如何改變這種關聯的信息,甚至無法確認是否屬實。任何想法如何解決或替代解決方案將不勝感激。
更新
找到了解決辦法,但它並不完美。發現可以直接連接到AppService實例上的IIS並更改處理程序映射。這並不完美,因爲創建新實例或部署插槽時需要手動更改,我寧願將整個過程自動化。
如果其他人想這樣做,你可以按照benjamin perkins的教程。我確實需要在Windows 10上安裝一個IIS Manager for remote administration擴展,但爲了這個工作。我刪除了與* .svc關聯的所有映射,並且路由正在工作。
爲該特定路徑添加處理程序,以便在iis可以處理它之前攔截它 – Nkosi