我有一个简单的WCF服务,可以执行简单的操作:
[OperationContract]
DoSomething (Stuff input);
如果
DoSomething
内部发生异常,则将返回FaultException
。假设客户只需知道是否出了点问题,您是否会说在这种情况下无需定义FaultException
? 最佳答案
返回FaultException
始终是一个好习惯,因为如果您不这样做,则 channel 将出错,无法再次使用。
在配置中(根据服务行为)决定需要向客户端发送哪些信息:
<serviceBehaviors>
<behavior name="myName">
<serviceDebug includeExceptionDetailInFaults="true" />
// ....
实际上,我总是在服务上实现
IErrorHandler
行为以捕获所有异常并返回FaultException<T>
,因此我不必在所有操作中都这样做。