無法獲得友好的自定義錯誤反饋給我的客戶端我扔了一個新的FaultException("error");
,它回到我的客戶與文本'錯誤'。WCF
現在我正在更進一步,我想用FaultContract
正確地做到這一點。
因此,我創建了一個名爲ServiceFault的[DataContract]
屬性,它只具有string ErrorMessage
屬性。
我的代碼是這樣的:
ServiceFault serviceFault = new ServiceFault("Broken.");
throw new FaultException<ServiceFault>(serviceFault);
我做了一個控制檯應用程序進行測試,完成與嘗試捕捉捕捉故障異常,但我只是得到:
無法調用該服務。可能的原因:該服務離線 或無法訪問;客戶端配置與 代理不匹配;現有的代理無效。有關更多詳細信息,請參閱 的堆棧跟蹤。您可以嘗試通過啓動新代理,將 恢復爲默認配置或刷新服務來進行恢復。
我想它應該說是一個錯誤異常發生,但它沒有,我只是明白了。
我能否錯過某些明顯的東西?也許配置選項?我已經實現它使用這個例子:http://msdn.microsoft.com/en-us/library/ms752208.aspx
我應該補充說,我已經把[FaultContract(typeof(ServiceFault))]
到ServiceContract。
還有一些注意事項:如果我只是拋出一個普通的FaultException,客戶端正確處理它。
當我拋出自定義故障異常時,即使我連續更新兩次,客戶端更新服務/檢索MEX數據(可疑)也需要很長時間。
您的客戶是否有新服務合同的副本? – zimdanen
是的,我每次下載包括所有數據合同和服務合同在內的完整元數據(理論上)時,都會更新服務參考。如果我使用對象瀏覽器探索客戶端上的服務,我可以看到我的ServiceFault類 – NibblyPig