我们有一个WCF服务方法(同步),它调用另一个进程(通过COM)来做一些事情。现在,这个COM过程大约需要10-15秒才能完成,然后将调用返回给我的服务,而该调用又应该返回给客户端。
在WCF客户端,我们将sendtimeout设置为5秒,因此在5秒后,我们在客户端收到超时异常。
现在我的问题是,在客户端收到超时异常后,服务端会发生什么。由于COM进程的调用仍在进行中,并可能在再过5-10秒后返回服务,因此服务如何处理此方案。
如果需要进一步输入,请让我知道。
致以敬意,
发布于 2011-05-17 15:20:46
Afaik,则在客户端抛出异常,但服务继续操作。如果您有长时间运行的操作,您可以查看asynchronous calls。
更新:如果这是不可能的,并且由于同样的原因增加超时也不是一个选项,我看不出你如何避免超时异常。一些恢复方法:
CancelCOMCall的服务操作,并在客户端捕获TimeoutException时从客户端调用,这将终止COM进程。我同意这两种方法都不是很好,但在我看来,如果没有异步调用,这就有点困难了。不过,我不是WCF专家。
https://stackoverflow.com/questions/6026992
复制相似问题