【问题标题】:Using AQMP with On-prem Windows Service Bus将 AQMP 与本地 Windows 服务总线一起使用
【发布时间】:2015-01-16 15:10:42
【问题描述】:

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

令牌提供程序在访问“https://{local machine name}: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 和主键值,但是也不行。

我很感激这方面的任何帮助,因为它让我发疯!

谢谢

【问题讨论】:

    标签: .net amqp servicebus


    【解决方案1】:

    原来我的连接字符串不正确,AMQP 基本上使用与 NetMessaging 相同的连接字符串,但运行时端口和 TransportType 除外。

    所以我们的 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
    

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-08
        • 1970-01-01
        • 2018-10-15
        相关资源
        最近更新 更多