为什么ProvideFault会捕获我的TimeoutException?
问题描述:
我有一个通过wcf进行通信的ProvideFault()
服务。对于大多数例外情况,我们希望抓住它们,将它们转换为FaultException<CustomException>
,并让调用者处理它,因此我们实施了ProvideFault()
。为什么ProvideFault会捕获我的TimeoutException?
到目前为止,这么好,而且大部分工作。但是这项服务正在调用另一项服务,有时会引发TimeoutExeption
;我们不希望发现这种例外情况,而是让它吸引呼叫者(如果需要,甚至会抛出新的TimeoutException
)。问题是,当方法抛出TimeoutException
时,ProvideFault()
会尝试处理它并将其变为FaultException。
我该如何强迫wcf让它冒泡为TimeoutException
?
答
WCF发送异常作为FaultExceptions,所以你不能冒出超时异常。
什么,但是你可以做的是发出了:
FaultException<TimeoutException>
但后来我要赶它作为一个的FaultException。客户端已经处理了TimeoutException,我希望不要改变它。 –
GavinSteyn
2012-02-02 18:29:08
你必须抓住两者。它也可以是积极的,因为你能够看到超时发生的地方。 – 2012-02-02 19:20:40