【问题标题】:Disconnection issues with azure service bus relayazure 服务总线中继的断开连接问题
【发布时间】:2014-09-02 04:42:45
【问题描述】:

我们使用 Azure 服务总线中继通过 http 运行一些长时间运行的测试应用程序,这些应用程序托管在 Windows 服务中,并且大多数情况下,这些应用程序可以正常运行 2-3 天。然而,每隔一段时间就会发生内部网络故障(例如防火墙重启),导致互联网连接中断。

此时,中继在 Azure 中被删除,我们的 Web 应用程序无法再与本地服务通信。

我原以为 Azure 中继客户端是容错的——如果它意识到它与 Azure 失去了连接,那么它将重新建立连接,并且如果它不能继续尝试,直到它可以......但是看来情况并非如此。这似乎很基础......?

我只见过一次“System.ServiceModel.CommunicationException”服务无法在 Internet 上通信,那是客户端启动并首先尝试建立连接的时候。

对于通过中继服务处理瞬时断开是否有任何建议或反馈(因为它是云 --> 本地方向,然后客户端无法 AFAIK ping 服务器)。

【问题讨论】:

  • 您解决了这个问题吗?遇到同样的问题,但找不到解决办法。

标签: azure azure-servicebusrelay


【解决方案1】:

如果您仍然遇到问题,您可能需要联系 Azure 支持以了解断开连接的原因。如果现有连接发生问题,中继客户端应重新连接。

您可能希望将ConnectionStatusBehavior 添加到您的ChannelFactory 以便在连接状态更改时输出。它将包含导致其更改状态的错误。

var connectionStatusBehavior = new ConnectionStatusBehavior();
connectionStatusBehavior.Online += ConnectionStatusOnlineMethod;
connectionStatusBehavior.Offline += ConnectionStatusOfflineMethod;
channelFactory.Endpoint.Behaviors.Add(connectionStatusBehavior);

【讨论】:

  • 是的,如果 LAN 断开与 Internet 的连接(防火墙重启、ISP 中断等),仍然会出现相当持续的问题。中继不会自动重新连接。
【解决方案2】:

Microsoft 在 Microsoft Azure Service Bus dll 的 2.6.5 版中解决了此问题。经过 1 个月的测试,它似乎有效。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-19
    • 1970-01-01
    • 2018-05-29
    • 1970-01-01
    • 2014-03-29
    • 1970-01-01
    相关资源
    最近更新 更多