MGS*_*oto 12 c# wcf exception-handling
我有一个在使用WCF连接回服务器的远程系统上运行的任务.任务很可能会抛出异常,我希望将这些异常引导回服务器.基本上我想做这样的事情:
客户:
server.SendException(new UnauthorizedAccessException("Some Exception"));
Run Code Online (Sandbox Code Playgroud)
服务器:
public void SendException(Exception e)
{
throw e;
}
Run Code Online (Sandbox Code Playgroud)
合同:
[ServiceContract]
public interface IServerContract
{
[OperationContract]
void SendException(Exception e);
}
Run Code Online (Sandbox Code Playgroud)
我一直在阅读有关故障异常的一些内容,但根据我的理解,它们用于在通过WCF调用的方法中运行的特定异常.我想要的是发送应用程序抛出WCF上下文之外的任何类型的异常,然后将它们传回服务器进行进一步处理.如果它有助于解决方案,则服务器还具有返回客户端的连接.
mar*_*c_s 10
您需要捕获服务器上的异常并将它们打包成SOAP故障,然后通过网络将它们发回.否则,您的客户端 - 服务器通道将"出现故障"且无法使用.
SOAP错误基本上是.NET异常的可互操作SOAP等价物.您不应该抛出.NET异常,因为它们是特定于.NET的 - WCF和SOA根据定义是系统无关的.
如果确保通信线路的两端都是.NET,则可以轻松地将任何.NET异常包装成a FaultException<T>,从而使用符合SOAP的"运输工具"轻松地回送特定于.NET的异常信息.
阅读有关SOAP故障的更多信息,以及如何将服务器上的.NET异常转换为线路上的SOAP故障: