为什么ProvideFault会捕获我的TimeoutException?

问题描述:

我有一个通过wcf进行通信的ProvideFault()服务。对于大多数例外情况,我们希望抓住它们,将它们转换为FaultException<CustomException>,并让调用者处理它,因此我们实施了ProvideFault()为什么ProvideFault会捕获我的TimeoutException?

到目前为止,这么好,而且大部分工作。但是这项服务正在调用另一项服务,有时会引发TimeoutExeption;我们不希望发现这种例外情况,而是让它吸引呼叫者(如果需要,甚至会抛出新的TimeoutException)。问题是,当方法抛出TimeoutException时,ProvideFault()会尝试处理它并将其变为FaultException。

我该如何强迫wcf让它冒泡为TimeoutException

WCF发送异常作为FaultExceptions,所以你不能冒出超时异常。

什么,但是你可以做的是发出了:

FaultException<TimeoutException> 
+0

但后来我要赶它作为一个的FaultException 。客户端已经处理了TimeoutException,我希望不要改变它。 – GavinSteyn 2012-02-02 18:29:08

+0

你必须抓住两者。它也可以是积极的,因为你能够看到超时发生的地方。 – 2012-02-02 19:20:40