我正在尝试使用AMQP从我的工作者角色连接到我的Azure服务总线。但是,我有一个超时例外。当我使用网络嗅探器时,我发现它正在尝试使用端口5671与Azure服务总线进行通信。但是它没有发送ACK消息,它只是超时。我在Visual Studio 2015中使用Azure模拟器尝试此操作。
当我尝试完全相同时,从同一台计算机和网络接口,但从正常的命令提示符应用程序(因此没有Azure工作者角色和/或模拟器),它的工作原理。我的应用程序能够向Azure发送ACK包并从Azure接收服务器Hello。
Azure模拟器或工作者角色是否默认阻止某些端口?为什么它从我的命令提示符应用程序工作,而不是从我的Azure工作者角色?我使用相同的连接字符串和以下代码:
TopicClient client = TopicClient.CreateFromConnectionString(_connectionstring, _queueName);
client.Send(new BrokeredMessage(msg));
答案 0 :(得分:1)
我终于找到了这个问题。在使用Azure模拟器的解决方案中,我包含以下包:
<package id="WindowsAzure.ServiceBus" version="2.5.1.0" targetFramework="net451" />
在我的控制台应用程序中,我使用了以下软件包:
<package id="WindowsAzure.ServiceBus" version="3.0.9" targetFramework="net46" />
因此,将我的Azure解决方案更改为3.0.9版解决了这个问题。似乎微软在版本3.x中引入了一个重大变化。
答案 1 :(得分:0)
按可能性排序,我猜问题是: