天蓝色服务总线继电器断开连接问题

时间:2014-07-11 14:07:45

标签: azure azure-servicebusrelay

我们正在运行一些长期运行的测试应用程序,其中Azure Service Bus中继通过http,托管在Windows服务中,大多数情况下,这些应用程序可以运行2-3天。但是,每隔一段时间内就会发生内部网络问题(例如防火墙重启),这会导致互联网连接中断。

此时,Azure中断了中继,我们的Web应用程序无法再与内部部署服务进行通信。

我原以为Azure中继客户端是容错的 - 因为如果它意识到它与Azure的连接丢失了,那么它将重新建立连接,如果它不能继续尝试直到它可以...但是看来事实并非如此。这看起来非常基础......?

我曾经见过一次“System.ServiceModel.CommunicationException”,其中服务无法在互联网上进行通信,那就是客户端启动并尝试首先建立连接时。

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

2 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

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