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