Wcf 为什么ProviderDefault会捕获我的TimeoutException?

Wcf 为什么ProviderDefault会捕获我的TimeoutException?,wcf,timeoutexception,ierrorhandler,Wcf,Timeoutexception,Ierrorhandler,我有一个通过wcf进行通信的providDefault()服务。对于大多数异常,我们希望捕获它们,将它们转换为FaultException,并让调用方处理它,因此我们实现了providdefault() 到目前为止,一切都很好,而且基本上是有效的。但此服务正在调用另一个服务,该服务有时会抛出TimeoutExeption;我们不想捕获该异常,而是让它冒泡到调用方(如果需要,甚至抛出一个新的TimeoutException)。问题在于,当方法抛出TimeoutException时,providDe

我有一个通过wcf进行通信的
providDefault()
服务。对于大多数异常,我们希望捕获它们,将它们转换为
FaultException
,并让调用方处理它,因此我们实现了
providdefault()

到目前为止,一切都很好,而且基本上是有效的。但此服务正在调用另一个服务,该服务有时会抛出
TimeoutExeption
;我们不想捕获该异常,而是让它冒泡到调用方(如果需要,甚至抛出一个新的
TimeoutException
)。问题在于,当方法抛出
TimeoutException
时,
providDefault()
会尝试处理它并将其转换为FaultException


如何强制wcf使其冒泡为
TimeoutException

wcf将异常作为FaultException发送,因此不能冒泡为超时异常

但是,您可以做的是发送:

FaultException<TimeoutException>
FaultException

但我必须将其作为故障异常捕获。客户端已经有了处理from TimeoutException的功能,我希望不会更改它。您必须同时捕获这两个功能。它也可以是正值,因为您可以看到超时发生的位置。