簡體   English   中英

使用http.sys的自托管WCF應用返回未找到路徑的HTTP 503

[英]Self-hosted WCF app using http.sys returns HTTP 503 for path not found

此問題最初針對Azure Service Fabric,因為這是我的部署模型。 但是對我來說,這很明顯是WCF問題,因此我將其改寫為更好地適應這一問題。 問題的原始文本在下面以黃色突出顯示。

我創建了一個自托管的WCF應用程序,該應用程序在端口80和443上公開了一個簡單的Restful WebApi。所有端點均按預期工作,與在IIS中托管完全相同的代碼時相同。 問題是,當我通過嘗試訪問不存在的路徑執行否定測試時,收到HTTP 503錯誤,而不是我期望的HTTP 404錯誤。

已經向我指出,這可能與http.sys有關,因為這正是處理傳入請求的原因。 那么我該如何解決呢? 對於自托管的WCF應用程序,這肯定是一個常見問題。 有沒有辦法讓http.sys或我的應用程序與用戶之間的任何組件返回更有意義的錯誤(如404)?

關於這是為什么以及如何解決的任何想法?

我已經設置了一個無狀態服務WebApi,該WebApi通過端口80從SF群集公開暴露。該api運行良好,但是我注意到,如果我在任何無效路徑上執行HTTP請求,例如“ GET http:/ /mycluster.westus.cloudapp.azure.com/thisisinvalid “,表示我返回了HTTP 503狀態。 我希望看到404,因為503會產生誤導,並且會使我的客戶感到困惑。 順便說一下,我的無狀態服務是基於WCF的WebApi。

我相信您會看到WCF對HTTP綁定的依賴於http.sys的工件,它允許多個應用程序共享端口並使用唯一的URL路徑進行標識。 當您請求不存在的“應用程序”時,它將返回503。

不過,這實際上與Service Fabric無關。 如果在問題中添加“ wcf”標簽,則可能會得到更全面的答案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM