我想从我的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