2011-06-28 146 views
0

我正在用C#編寫OData webservice,我需要一些關於如何處理無效請求的建議?如果客戶在他們不再擁有的物品上請求服務,則會出現一個錯誤示例。我希望能夠確切地向顧客報告爲什麼它是無效的,因爲有多種可能的原因。OData中的無效請求處理

非常感謝

回答

1

我會推薦使用FaultContracts作爲OperationContract的一部分。您可以像DataContracts一樣定義它們,並像處理自定義異常一樣處理異常。

[OperationContract] 
[FaultContract(typeof(ItemNotOwned))] 
Item GetItem(int ItemId); 

您將ItemNotOwned定義爲單獨的合同定義。

檢查出來的MSDN:http://msdn.microsoft.com/en-us/library/ms733841.aspx#Y323

+0

看起來像它只是爲SOAP。我使用REST –

+0

哦,是的,錯誤只是SOAP。如果您使用HttpClient進行REST,那麼正常的異常將被序列化。不過,你需要在電線的另一端放鬆它們。 –

1

只是拋出一個異常,幷包含該信息的消息。該異常將被序列化爲發送給客戶端的響應。如果您不關心響應狀態代碼,則會發生任何異常並且客戶端將收到500(內部服務器錯誤)。如果你想要一個特定的狀態碼,拋出一個DataServiceException的實例。