当前位置: 首页 > 知识库问答 >
问题:

如何将AMQP 1.0与服务总线一起使用。NET API(Azure)

沈运恒
2023-03-14

在如何将AMQP 1.0与服务总线一起使用后,我正在尝试使用AMQP连接到Azure服务总线队列“queue1”。NET API。

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

我搜索了其他博客,但所有博客都只是说“创建一个队列,添加传输类型属性,然后就可以走了......”-听起来很简单,但不幸的是对我不起作用。

在一些本地帖子中提到了一些关于运行时端口5671的内容,但这也没有帮助。

有什么建议吗?谢谢!

共有1个答案

郜光明
2023-03-14

在我的windows防火墙上打开端口5671、5672、5760、5761、5762、9350、9354后没有任何帮助,在完全禁用windows防火墙以进行调试后没有工作,我只是将手机作为热点来尝试在公司网络周围工作,现在它只需在连接字符串的末尾添加“TransportType=Amqp”。无需修改默认端口。我现在必须和IT人员谈谈……:)

因此,如果您收到消息“由于目标机器主动拒绝,无法建立连接”,或者在德语中是“Es konnte keine Verbindung hergestellt werden,da der Zielcomputer die Verbindung verweigerte”检查您的防火墙。。。

一个很好的链接值得一提:“Windows Azure Service Bus AMQP Firewall Ports”:

这表示防火墙问题。然后,您应该考虑为传出通信打开一些TCP端口。

编辑:

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

ServiceBusEnvironment.SystemConnectivity.Mode = ConnectivityMode.Http;

正如这里提到的:如何通过端口80向Azure Service Bus发送消息?

尽管似乎存在性能问题:

[...]尽管它非常慢,并且不确定对于大量消息是否可靠

 类似资料:
  • 我目前正在为我的工作研究Windows服务总线,并且已经设法非常快速地使用NetMessaging作为传输类型启动了一个测试系统。但是,今天我尝试切换到AMQP作为传输机制,但我似乎无法让它工作-它成功地根据我的连接字符串创建了一个MessagingFactory,但当我尝试创建队列时失败了,给我错误: 令牌提供者在访问“https://{local机器名}: 5671/TestServiceBu

  • 很多关于Service Bus的资料都提到它使用AMQP 1.0。然而,我发现的示例使用了隐藏AMQP层的库,因此不清楚如何使用通用AMQP 1.0客户端并执行此服务总线示例中列出的操作 在几种情况下,能够使用独立的AMQP客户端而不是提供的更高级别客户端可能很重要。例如,提供的客户端可能在某些平台上不可用,或者通用客户端可能为特定问题提供更合适的工作方式。 可能相关问题

  • 有人能解释一下新发布的WindowsServiceBus(内部部署,而不是Azure)和NServiceBus之间的区别吗? 寻找详细的答案什么窗口SB可能会丢失,因为我很熟悉NSErviceBus可以做什么: 它是真正的服务总线,而不仅仅是使用队列的消息代理吗? 是否可以支持消息多态?(消息子类化其他消息和支持此层次结构的处理程序 长时间运行的进程和相关性 向外扩展

  • 我有一个名为UserRepository的通用存储库接口。然后我有一个接口,它从MyUserRepository扩展而来。它处理一个MyUser类,该类扩展了User。 我还有一个名为UserService的服务接口和一个名为MyUserServiceImpl的类。 该服务需要UserRepository的实例,我虽然可以使用某种注释,如@Qualifer,但它不起作用。 应用程序无法启动 说明:

  • 我是个很新的程序员。我在工作中的任务之一是让我们的定制工具创建草稿电子邮件,并将其放入运行该工具的用户的草稿电子邮件文件夹中。我们目前使用Exchange Server 2010(但正在迁移到Exchange Online)。 这个链接讨论了UseDefaultCredentials,但我似乎不知道如何实现它。我创建了一个名为service的ExchangeService对象,并使用以下凭据与Ex

  • 我正在寻找一种解决方案,用于在几个本地数据库之间进行实时数据集成。没有太多的数据转换。我正在评估各种可用的ESB。我认为使用Azure服务总线进行数据集成可以快速开发解决方案。建议使用Azure service bus集成所有内部数据库吗?