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

将AQMP与本地Windows服务总线一起使用

越涵衍
2023-03-14

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

令牌提供者在访问“https://{local机器名}: 5671/TestServiceBus/$STS/Windows/”时无法提供安全令牌。令牌提供者返回消息:“基础连接已关闭:连接意外关闭。”

我查阅了文档,但看不出我做错了什么。我想我可能把连接字符串搞错了,实际上我使用了从powershell命令(get SBClientConfiguration)获得的默认字符串,并修改了端口。我还从这里获取了连接字符串示例:http://azure.microsoft.com/en-gb/documentation/articles/service-bus-dotnet-advanced-message-queuing/

并对其进行了适当的修改,使其看起来像这样:

Endpoint=sb://{local machine name}/TestServiceBus;RuntimePort=5672;ManagementPort=5671;SharedSecretIssuer={issuer name};SharedSecretValue={private key};TransportType=Amqp

然而,由于该文章与Azure直接相关,我没有来自Azure仪表板的SharedAccessKeyName或SharedSecretValue属性,因此我使用了get-SBClientConfiguration中的IssuerName和主键值,但这也不起作用。

我会很感激你的帮助,因为这快把我逼疯了!

谢谢

共有2个答案

章嘉致
2023-03-14

使用Servicebus for Windows Server时,我们在连接字符串中使用用户名/密码。

仲孙奇
2023-03-14

事实证明,我的连接字符串不正确,AMQP基本上使用与NetMessaging相同的连接字符串,但运行时端口和传输类型除外。

因此,我们的NetMessaging conn字符串如下所示:

Endpoint=sb://<machine name>/TestServiceBus;StsEndpoint=https://<machine name>:9355/TestServiceBus;RuntimePort=9354;ManagementPort=9355

AMQP的一个看起来像这样:

Endpoint=sb://<machine name>/TestServiceBus;StsEndpoint=https://<machine name>:9355/TestServiceBus;RuntimePort=5671;ManagementPort=9355;TransportType=Amqp

请注意,本例中的端口号是服务总线配置进程设置的默认端口号。

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

  • 在如何将AMQP 1.0与服务总线一起使用后,我正在尝试使用AMQP连接到Azure服务总线队列“queue1”。NET API。 在azure管理门户中,我可以看到队列“queue1”已成功创建,如果我省略连接字符串扩展名“TransportType=Amqp”,则连接确实有效。但是,一旦我想通过将属性“TransportType”添加到连接字符串来使用amqp,我就会收到目标计算机(因此是az

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

  • 我正在开发一个客户端,它可以从Windows服务总线读取消息,该消息是使用发送的。净额。客户端是使用Java开发的,据我所知,它创建会话,但当它创建会话时,使用者抛出一个JMSException,它只告诉我以下消息:amqp:不允许 有线索吗? 顺致敬意,

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

  • 我正在考虑开发一个在内部和外部运行的应用程序,并希望使用服务总线在服务之间进行通信。我有两个问题: 我的公司网络阻止了对Azure终结点的访问,因此我无法使用真正的Azure服务总线。 我不能使用WindowsAzure。ServiceBus版本2.2.7.0我的Windows Server服务总线。 每当我尝试使用Windows Server服务总线(例如NamespaceManager.Que