我想從我的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. 在javascript中捕獲從ac#web服務拋出的異常
- 2. 捕獲異常異步Web服務完成的事件處理程序拋出
- 3. 從silverlight調用Java Web服務拋出異常
- 4. Web服務拋出異常
- 5. 捕獲從DLL中拋出的異常
- 6. 在任務線程中拋出的異常,未被UnobservedTaskException捕獲
- 7. 企業庫在Web應用程序中拋出異常
- 8. log4net在ASP.Net MVC Web應用程序中拋出安全異常
- 9. 用CXF捕獲web服務異常:NoClassDefFoundError:SOAPFaultBuilder
- 10. 遞增加載捕獲並拋出異常Metro應用程序
- 11. Web應用程序中的Servlet [mvc-dispatcher]拋出load()異常java.lang.ClassNotFoundException
- 12. 如何在Java Servlet Web應用程序中捕獲未捕獲的異常
- 13. 獲取早期在應用程序c#中拋出的異常?
- 14. Restful web服務拋出servlet.init()異常
- 15. Web服務類拋出異常
- 16. 春天web服務拋出異常
- 17. 拋出異常並捕獲異常?
- 18. 在Silverlight應用程序中同步Exchange Web服務時出錯
- 19. 在Web服務中使用硒會拋出java.lang.NoClassDefFoundError異常
- 20. 在Windows服務中拋出異常
- 21. 如何在java fx應用程序中捕獲任務異常?
- 22. 捕獲任何web服務異常?
- 23. 捕獲在UDPClient.EndReceive拋出的ObjectDisposedException異常
- 24. 在硒中捕獲服務器異常?
- 25. 在Tomcat中記錄Web應用程序中的所有拋出的異常
- 26. WebClient.DownloadStringAsync在Silverlight中拋出安全異常
- 27. Silverlight 4應用程序崩潰而不是拋出異常
- 28. 如何不在ASP.NET Web Api服務中拋出異常?
- 29. Web服務在POST請求中拋出錯誤/異常
- 30. Powershell:無法啓動服務時拋出捕獲異常
你爲什麼要使用ASMX Web服務使用Silverlight?您應該使用WCF進行所有新的Web服務開發。 – 2010-08-27 19:46:58