我目前正在为我的工作调查Windows Service Bus,并设法使用NetMessaging作为传输类型非常快速地启动测试系统。但是,今天我尝试切换到AMQP作为传输机制,我似乎无法让它工作 - 它基于我的连接字符串成功创建了一个MessagingFactory但是在我尝试创建队列时失败了,给了我错误:
令牌提供程序在访问&#;; https:// {本地计算机名称}时无法提供安全令牌: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和主键值,但那也不起作用。
我很感激任何帮助,因为它让我发疯了!
由于
答案 0 :(得分:2)
事实证明我的连接字符串不正确,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
请注意,在这种情况下,端口号是服务总线配置过程设置的默认端口号。
答案 1 :(得分:-1)
使用Servicebus for Windows Server时,我们在连接字符串中使用用户名/密码。