如何将 AMQP 1.0 与服务总线 .NET API (Azure) 结合使用

How to use AMQP 1.0 with the Service Bus .NET API (Azure)

我正在尝试在 post How to use AMQP 1.0 with the Service Bus .NET API 之后使用 AMQP 连接到 Azure 服务总线队列 'queue1'。

在 Azure 管理门户中,我可以看到队列 'queue1' 已成功创建,如果我省略连接字符串扩展 'TransportType=Amqp',则连接确实有效。但是,一旦我想通过将 属性 'TransportType' 添加到连接字符串来使用 amqp,我就会收到目标计算机(因此是 azure)拒绝连接的异常。

我搜索了其他博客,但所有博客都只说 "Create a queue, add the transport type property and off you go..." - 听起来很简单,但不幸的是对我不起作用。

在一些本地 post 中提到了有关运行时端口 5671 的内容,但这也无济于事。

有什么建议吗?非常感谢!

在我的 windows 防火墙上打开端口 5671、5672、5760、5761、5762、9350、9354 后没有帮助,在完全禁用 windows 防火墙进行调试后也没有用,我刚刚尝试使用移动设备作为热点来围绕公司网络工作,现在它只需在连接字符串的末尾添加 'TransportType=Amqp' 即可。不需要修改默认端口。我现在必须和 IT 人员谈谈...:)

因此,如果您收到 "No connection could be made because the target machine actively refused it" 或德语 "Es konnte keine Verbindung hergestellt werden, da der Zielcomputer die Verbindung verweigerte" 消息,请检查您的防火墙...

一个不错的 link 值得一提:“Windows Azure Service Bus AMQP Firewall Ports”:

This indicates a firewall issue. You should then look at opening some TCP ports for outgoing Communication.

编辑:

一个有趣的替代方法是使用

ServiceBusEnvironment.SystemConnectivity.Mode = ConnectivityMode.Http;

如此处所述:How to send messages to Azure Service Bus over Port 80?

尽管似乎存在性能问题:

[...] though its deadly slow and not sure if reliable for large volume of messages