【问题标题】:WCF service behaviour on Timeout exception超时异常上的 WCF 服务行为
【发布时间】:2011-05-17 06:20:15
【问题描述】:

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

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

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

如果需要进一步输入,请告诉我。

问候,

【问题讨论】:

    标签: wcf timeoutexception


    【解决方案1】:

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

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

      1234563 .
    • 如果您想让操作完成但防止来自客户端的重复调用(由超时异常后重试引起),您可以保存每个客户端正在运行的 COM 操作并放弃对已经运行的进程的调用。

    我同意这两种方法都不是很简洁,但是如果没有异步调用,我觉得有点困难。不过我不是 WCF 专家。

    【讨论】:

    • 好吧,我理解你关于异步调用的观点,但不幸的是服务调用不能异步(由于我们遵循的一些规范/标准)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-16
    • 2011-11-28
    • 1970-01-01
    • 1970-01-01
    • 2010-12-11
    • 2018-11-22
    相关资源
    最近更新 更多