如何跨SOAP Web服务传播异常
本文关键字:传播 异常 服务 Web 何跨 SOAP | 更新日期: 2023-09-27 18:13:25
我有一个标准的ASMX web服务。我想抛出一个自定义异常,并让它在客户端被捕获。唯一可能遇到的是SoapException。例子:
// Server side code
[WebMethod]
public void foo(string bar) {
throw new CustomException(bar);
}
public class CustomException : Exception {
....
}
// Client side code
public void CallFoo() {
try {
service.foo()
}
catch (CustomException ex) {
Console.WriteLine(ex.Message);
}
catch (SoapException ex) {
Console.WriteLine("IT ALWAYS HITS HERE");
}
catch (Exception ex) {
Console.WriteLine(ex.Message);
}
}
是否有办法通过我的CustomException异常发送?以某种方式连载?
根据MSDN:
'[…XML Web服务方法抛出的任何异常都作为SoapException抛出[…]在XML Web服务中处理和抛出异常。
也就是说,没有什么可以阻止你创建一个异常包装器类并序列化它,就像这篇文章中建议的@davogones:
如何序列化c#中的Exception对象?
使您的自定义异常继承自SoapException