mic*_*ael 9 wcf exception wcf-interoperability faultexception
我知道WCF会将异常转换为错误并将其作为SOAP消息发回,但我想知道这是否真的可以互操作.我想我正在努力找出这种可能的情况:
我想我只是很难理解它是如何仍然可以互操作的,因为它期望Java知道如何转换.NET编译的UnisonAccessException的SOAP错误.
没有"自动转换".当您有未处理的异常时,WCF将返回错误(我忘记了哪一个).但是,由于您没有声明该错误,如果您返回它,许多(如果不是大多数)客户端将会失败.
您的意思是定义自己的错误并返回它们.考虑:
[DataContract]
public class MySpecialFault
{
public string MyMessage { get; set; }
}
[ServiceContract]
public interface IMyService
{
[FaultContract(typeof (MySpecialFault))]
[OperationContract]
void MyOperation();
}
public class MyService : IMyService
{
public void MyOperation()
{
try
{
// Do something interesting
}
catch (SomeExpectedException ex)
{
throw new FaultException<MySpecialFault>(
new MySpecialFault {MyMessage = String.Format("Sorry, but {0}", ex.Message)});
}
}
}
Run Code Online (Sandbox Code Playgroud)
任何能够处理故障的客户都会处理这个问题.WSDL将定义错误,他们将看到Detail元素的错误,其中包含已发送的MySpecialFault实例的序列化版本.他们将能够读取该实例的所有属性.
| 归档时间: |
|
| 查看次数: |
2753 次 |
| 最近记录: |