为什么ProvideFault会捕获我的TimeoutExceptions?

时间:2012-02-02 16:16:29

标签: wcf timeoutexception ierrorhandler

我有一个ProvideFault()服务通过wcf进行通信。对于大多数例外情况,我们希望捕获它们,将它们转换为FaultException<CustomException>,然后让调用者处理它,以便我们实现ProvideFault()

到目前为止,这么好,它主要起作用。但是这项服务正在调用另一项服务,有时会抛出TimeoutExeption;我们不想捕获该异常,而是让它冒泡到调用者(如果需要,甚至可以抛出一个新的TimeoutException)。问题是,当方法抛出TimeoutException时,ProvideFault()会尝试处理它并将其转换为FaultException。

如何强制wcf让它冒出TimeoutException

1 个答案:

答案 0 :(得分:1)

WCF将异常作为FaultExceptions发送,因此您无法冒出超时异常。

你可以做的是发送一个:

FaultException<TimeoutException>