2012-12-13 125 views
1

我部署了一個Azure WCF託管服務。我創建了一個服務和一個服務合同。驗證Azure託管服務的端點

http://myexampleservice.cloudapp.net/TestSertvice.svc/Test1

現在,我們要捕獲所有無效的請求,不具備正確的服務名稱或正確操作名稱之一:如果我下面把它的一切工作正常。例如下面的表格的所有請求:

http://myexampleservice.cloudapp.net/TestSertvice12.svc/Test1

有沒有辦法做到這一點?

如果我在無效請求上面調用,則服務返回響應狀態爲404.如果服務器獲取太多這樣的請求,那麼azure流量管理器是否有可能降級服務?

-Manish

+0

爲了澄清,我們希望在服務器端捕獲所有具有無效端點的請求。我們有許多客戶使用的集中服務,所以我們不能強制客戶驗證端點並撥打電話。 –

回答

0

這實際上很容易做到。所以,首先你需要捕捉髮生在您的實例(一個或多個)404個請求:

<customErrors mode="On" > 
     <error statusCode="404" redirect="~/Errors/Error404.aspx" /> 
</customErrors> 

每次發生404錯誤的用戶/消費者將被重定向到Error404.aspx在那裏你可以將此事件添加到本地計數器(文件或靜態變量)或共享計數器(如果您有多個實例(SQL Azure,表存儲...)。

在配置流量管理器時,你有選擇請看:

enter image description here

你可以設置一個監控端點。這將指向一個不同的頁面(如/Status/CanBeUsed.aspx)。如果該頁面確定不應該使用該部署(即:如果您的本地/共享計數器包含太多404錯誤),則該頁面應返回不同於200的HTTP狀態代碼。流量管理器將監測這個頁面,在3個失敗的請求之後,它將故障轉移到另一個部署。

+0

謝謝Sandrino,這就是我一直在尋找的東西。 –