我想從我的asmx Web服務中拋出異常並讓silverlight前端捕獲Web服務的完成事件中的異常。這可能嗎?在Silverlight應用程序中從Web服務中捕獲拋出的異常
2
A
回答
3
有沒有簡單的方法做這
,你將不得不在web服務所有的異常封裝爲故障異常
變化的狀態碼200
退房這個網址爲樣本
0
Web服務沒有例外。他們返回SOAP Faults。
ASMX Web服務甚至不能正確支持SOAP錯誤。
任何未捕獲的異常將變成SoapException
。當從服務中拋出未捕獲的SoapException
時,它將作爲SOAP Fault返回。
如果您使用「添加Web引用」來創建您的代理類,那麼任何SOAP故障將再次變成SoapException
。
另一方面,WCF正確支持客戶端和服務上的SOAP Faults。服務操作可以聲明,它可能會返回一個特定類型的故障,比如,「InvalidDataFault」:
[OperationContract]
[FaultContract(typeof(InvalidDataFault))]
void SomeOperation(SomeDataContract request);
[DataContract]
public class InvalidDataFault
{
[DataMember]
public string Message {get;set;}
[DataMember]
public string PropertyName {get;set;}
}
操作可再拋錯:
throw new FaultException<InvalidDataFault>(
new InvalidDataFault {Message="Some message", PropertyName="Property1"});
的客戶端可以捕獲這個異常並訪問細節:
try
{
proxy.SomeOperation(data);
}
catch (FaultException<InvalidDataFault> ex)
{
// Can now process ex.Detail.Message and ex.Detail.PropertyName
}
相關問題
- 1. 捕獲異常異步Web服務完成的事件處理程序拋出
- 2. 捕獲從DLL中拋出的異常
- 3. 從silverlight調用Java Web服務拋出異常
- 4. log4net在ASP.Net MVC Web應用程序中拋出安全異常
- 5. 企業庫在Web應用程序中拋出異常
- 6. 用CXF捕獲web服務異常:NoClassDefFoundError:SOAPFaultBuilder
- 7. Web應用程序中的Servlet [mvc-dispatcher]拋出load()異常java.lang.ClassNotFoundException
- 8. 獲取早期在應用程序c#中拋出的異常?
- 9. Restful web服務拋出servlet.init()異常
- 10. 春天web服務拋出異常
- 11. Web服務類拋出異常
- 12. 在Windows服務中拋出異常
- 13. 如何在java fx應用程序中捕獲任務異常?
- 14. 在Silverlight應用程序中同步Exchange Web服務時出錯
- 15. 捕獲在UDPClient.EndReceive拋出的ObjectDisposedException異常
- 16. 在硒中捕獲服務器異常?
- 17. Web服務在POST請求中拋出錯誤/異常
- 18. WebClient.DownloadStringAsync在Silverlight中拋出安全異常
- 19. Silverlight 4應用程序崩潰而不是拋出異常
- 20. 如何在c#中的Windows應用程序中捕獲異常?
- 21. 什麼時候應該在方法中拋出異常或捕獲異常?
- 22. 拋出異常的Web應用
- 23. 如何捕獲從iframe中拋出的異常?
- 24. 如何捕獲Java中另一個線程拋出的異常?
- 25. 無法捕獲拋出的異常
- 26. 註釋處理程序拋出未捕獲的異常
- 27. 在WinRT應用程序中拋出的WebException不能被捕獲
- 28. CSocket ::在我的MFC應用程序中創建拋出異常
- 29. 在火花應用程序中使用fastutill ObjectArrayList拋出異常
- 30. Java中的捕捉與拋出異常
你爲什麼要使用ASMX Web服務使用Silverlight?您應該使用WCF進行所有新的Web服務開發。 – 2010-08-27 19:46:58