何时使用WCF故障异常

Mar*_*909 5 .net c# wcf fault

我有一个简单的WCF服务,执行一个简单的操作:

[OperationContract]
DoSomething (Stuff input);
Run Code Online (Sandbox Code Playgroud)

如果内部发生异常,DoSomethingFaultException返回a.鉴于所有客户需要知道的是出了什么问题,你会说FaultException在这种情况下没有必要定义一个吗?

Ali*_*tad 4

返回 a 始终是一个好习惯FaultException,因为如果不这样做,通道将出现故障并且无法再次使用。

在配置中(在服务行为中)决定需要向客户端发送哪些信息:

         <serviceBehaviors>
                <behavior name="myName">
                     <serviceDebug includeExceptionDetailInFaults="true" />
       // ....
Run Code Online (Sandbox Code Playgroud)

事实上,我总是IErrorHandler在服务上实现行为来捕获所有异常并返回FaultException<T>,这样我就不必在所有操作中都这样做。