【问题标题】:Azure Service Bus Binding causes Worker Role to become unhealthy after single faultAzure 服务总线绑定导致工作人员角色在单个故障后变得不健康
【发布时间】:2012-02-23 22:21:58
【问题描述】:

我一直在处理托管 netTcpRelayBinding WCF 服务的 Azure 辅助角色。一切似乎都运行良好,直到我连接的主机之一意外断开连接。在接下来的几分钟内,该角色不断失去稳定性,然后报告自己不健康。

我不确定我应该去哪里找。我启用了 IntelliTrace,但也有一些例外,它们以您所期望的 TimeoutException 开头,然后继续。我收到这些消息:

System.ServiceModel.CommunicationException - 已超过 (00:00:10) 的不活动超时。

System.InvalidProgramException - 公共语言运行时检测到无效程序

在这之后,我得到了一系列通信异常,超时异常,然后最终整个主机崩溃并出现 OutOfMemoryException。

注意事项:我连接了 1 个客户端。没有其他电话或活动。当他意外断开连接时,上述情况一直发生。

尝试捕获服务主机 Faulted,但这似乎无济于事(在 IntelliTrace 日志中看不到它被击中的位置。

关于我应该在哪里寻找的任何想法?当然,我不需要每次发生这种情况时都重新创建服务,对吧?

【问题讨论】:

    标签: c# wcf azure


    【解决方案1】:

    这听起来并不熟悉。您能否重现这一点以及您的角色总体感觉如何,这意味着 CPU 负载是什么样的以及并行发生的其他事情?

    干杯, 克莱门斯

    【讨论】:

    • 我还有 3 个其他服务正在运行,都是 basicHttpBinding,偶尔都会收到来自同一个客户端的调用。但是,那些运行一整天都没有错误或显着的 CPU 使用率。此 netTcpRelaybinding 始终导致角色失败(在客户端意外终止的情况下)。
    • 这很奇怪。如果您尚未打开 WCF 跟踪,我建议您打开并在跟踪查看器中查看生成的日志以查找异常。如果这不能让您到任何地方,请收集您可以收集的任何痕迹/日志,将其压缩,然后发送给我。我是 microsoft.com 的 clemensv
    • 我还没准备好打电话给它,但我可能会有答案。这只发生在启用 IntelliTrace 的情况下。我切换到分析以确认预期的 CPU,但突然无法重现。我刚刚切换回 IntelliTrace,但它又失败了。以一种迂回的方式,您检查 CPU 的建议可能使我找到了答案。
    • 这最终成为我能说的最好的解决方案。我不确定 IntelliTrace 的具体原因是什么导致了这个问题,但关闭它肯定会解决它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-09
    • 2023-01-24
    • 2013-03-14
    • 2013-03-26
    • 2021-05-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多