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