首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >超时异常时的WCF服务行为

超时异常时的WCF服务行为
EN

Stack Overflow用户
提问于 2011-05-17 14:20:16
回答 1查看 783关注 0票数 0

我们有一个WCF服务方法(同步),它调用另一个进程(通过COM)来做一些事情。现在,这个COM过程大约需要10-15秒才能完成,然后将调用返回给我的服务,而该调用又应该返回给客户端。

在WCF客户端,我们将sendtimeout设置为5秒,因此在5秒后,我们在客户端收到超时异常。

现在我的问题是,在客户端收到超时异常后,服务端会发生什么。由于COM进程的调用仍在进行中,并可能在再过5-10秒后返回服务,因此服务如何处理此方案。

如果需要进一步输入,请让我知道。

致以敬意,

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-05-17 15:20:46

Afaik,则在客户端抛出异常,但服务继续操作。如果您有长时间运行的操作,您可以查看asynchronous calls

更新:如果这是不可能的,并且由于同样的原因增加超时也不是一个选项,我看不出你如何避免超时异常。一些恢复方法:

  • 如果您希望在客户端超时时中止服务器操作,则可以添加一个类似CancelCOMCall的服务操作,并在客户端捕获TimeoutException时从客户端调用,这将终止COM进程。
  • 如果要让操作完成,但要防止来自客户端的重复调用(由超时异常后的重试引起),则可以保存每个客户端正在运行的COM操作,并放弃对已在运行的进程的调用。

我同意这两种方法都不是很好,但在我看来,如果没有异步调用,这就有点困难了。不过,我不是WCF专家。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6026992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档