连接字符串,用于从节点连接到本地ServiceBus

时间:2015-11-16 00:10:39

标签: node.js azure connection-string azureservicebus servicebus

我正在尝试使用Node.js连接到Windows服务总线的本地实例。

我从powershell获取了我的连接字符串:

PS C:\Users\Juan> Get-SBClientConfiguration
Endpoint=sb://juan-vaio/MyNamespace;StsEndpoint=https://juan-vaio:9355/MyNamespace;RuntimePort=9354;ManagementPort=9355

但是当使用azure-node软件包从Node中使用此连接字符串时,我收到以下错误:

CODE

var connectionString = "Endpoint=sb://localhost/MyNamespace;StsEndpoint=https://localhost:9355/MyNamespace;RuntimePort=9354;ManagementPort=9355";
var serviceBusService = Azure.createServiceBusService(connectionString);

ERROR

      throw new Error('Invalid connection string setting key "' + key + '"');
            ^
Error: Invalid connection string setting key "runtimeport"

我已尝试删除连接字符串的runtimeport设置,但由于ManagementPort而失败。如果我删除那一个,它最终因为设置不完整而无法连接:

  throw new NoMatchError('The provided connection string "' + connectionString
        ^
NoMatchError: The provided connection string "Endpoint=sb://localhost/MyNamespace;StsEndpoint=https://localhost:9355/MyNamespace;" 
does not have complete configuration settings.
谷歌搜索了一下我发现它似乎是一个已知的问题:

https://github.com/Azure/azure-sdk-for-node/issues/1254

但我想知道是否有解决方法,或者我是否做错了。

1 个答案:

答案 0 :(得分:3)

Azure SDK for Node适用于Microsoft Azure Service Bus,而不适用于Windows Server上的Service Bus。所以你不能直接用它来连接本地服务总线。

他们的连接字符串是不同的,见下文:

对于Azure Service Bus,这样的formule: Endpoint=sb://<azure-sb-name>.servicebus.windows.net/;SharedAccessKeyName=<key-name>;SharedAccessKey=<key> 对于Windows Server上的Service Bus,这样的公式:Endpoint=sb://yourHost/ServiceBusDefaultNamespace;StsEndpoint=https://yourHost:9355/ServiceBusDefaultNamespace;RuntimePort=9354;ManagementPort=9355

根据官方文档https://msdn.microsoft.com/en-us/library/dn441376.aspx,Windows Server Service Bus提供类似于Microsoft Azure Service Bus提供的API的REST API。

enter image description here

因此,您可以参考Azure Service Bus REST API https://msdn.microsoft.com/en-us/library/hh780717.aspx并将Azure的参数替换为本地的。

但是,我建议您在dotNet(https://msdn.microsoft.com/en-us/library/dn441398.aspxhttps://msdn.microsoft.com/en-us/library/dn441414.aspx)中使用Service Server for Windows Server SDK,或者参考文档https://msdn.microsoft.com/en-us/library/dn574799.aspx尝试从Java连接到AMQP。