【问题标题】:"The operation has timed out" inconsisted timeout error from Web Service hosted in Azure来自 Azure 中托管的 Web 服务的“操作已超时”不一致的超时错误
【发布时间】:2012-09-03 22:58:17
【问题描述】:

我创建了一个托管在 Azure 中的 Web 服务应用程序。服务进程运行大约 10 分钟才能完成并返回一个包含 2782 个字符的字符串。服务超时已设置为 1 小时,但我仍然收到超时错误。

但当我发送一个小数据进行处理时,服务在 5 分钟内完美响应。

ERROR: "The operation has timed out"

注意: 当我在本地 IIS 中使用已发布的 Web 服务测试我的应用程序时,该过程运行顺利。我还尝试通过Azure托管服务实例的远程连接来测试该服务,它也可以正常工作。

【问题讨论】:

    标签: .net web-services azure timeout asmx


    【解决方案1】:

    Azure 负载均衡器在一分钟后终止所有空闲连接。这可能是导致您出现此问题的原因。无法配置负载平衡器以允许更长的连接。在等待服务完成时,您可能需要更改服务以使用 post then poll 方法。完整的解释和示例代码见this question

    【讨论】:

    • 感谢您的回复,但我认为这与空闲连接无关。我通过在数据库的字段中设置一个标志来跟踪服务进程,然后立即关闭 sql 连接。
    • 我说的不是数据库连接,而是 WCF 客户端与 WCF 服务的连接。如果客户端等待超过一分钟才能从服务中获取结果,负载均衡器将终止两者之间的连接,因为该连接上没有任何事情发生。即使与客户端的连接已经停止,服务仍然可以继续并完成它正在尝试做的事情。
    • 好的,我明白了。我只是对负载平衡器的工作方式感到困惑。我正在记录 WCF 连接的开始和结束时间。当我访问 WCF 以处理更少的数据(大约需要 3 分钟)时,一切都会正常工作。但是当这个过程超过5分钟。 WCF 将不响应并超时。
    猜你喜欢
    • 2011-06-17
    • 1970-01-01
    • 2013-04-02
    • 1970-01-01
    • 2011-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-08
    相关资源
    最近更新 更多