将 SendListen 共享访问密钥用于 GetConsumerGroupAsync 时发生未经授权的错误
Unauthorized error when using SendListen shared access key to GetConsumerGroupAsync
从昨天开始,当我们尝试使用 SendListen 密钥访问消费者组时,我们开始观察到以下错误。它正在抛出未经授权的错误。如果我使用 RootManagerSharedAccessKey,这工作正常。
var connectionString = "Endpoint=sb://*****.servicebus.windows.net/;SharedAccessKeyName=SendListen;SharedAccessKey=****";
var ns = NamespaceManager.CreateFromConnectionString(connectionString);
var result= ns.GetConsumerGroupAsync("**", "**").GetAwaiter().GetResult();
异常:
'The remote server returned an error: (401) Unauthorized. TrackingId:e2993246-9253-4cb7-ab54-2a9b32abfec7, SystemTracker:*.windows.net:dataoffload/ConsumerGroups/, Timestamp:8/11/2017 12:33:46 AM'
EventHub 最近有什么变化吗?
根据你的描述,我这边查了这个问题。这是我的测试,你可以参考一下。
设置 > 共享访问策略
代码片段:
var connString = "Endpoint=sb://{my-hubname}.servicebus.windows.net/;SharedAccessKeyName=SendListen;SharedAccessKey=aTu3sxJ1TMLXDWN6ErkHp28aVL/Fstfa49MkuibbQ7A=";
var ns = Microsoft.ServiceBus.NamespaceManager.CreateFromConnectionString(connString);
var result = ns.GetConsumerGroupAsync("myhub01", "$Default").GetAwaiter().GetResult();
根据设置,我可以检索我的消费者组的描述。此外,对于单个 Listen 策略,它也可以工作。根据您的错误,我建议您检查 CONNECTION STRING
。此外,您可以利用 fiddler 收集网络跟踪以获取详细信息。
从昨天开始,当我们尝试使用 SendListen 密钥访问消费者组时,我们开始观察到以下错误。它正在抛出未经授权的错误。如果我使用 RootManagerSharedAccessKey,这工作正常。
var connectionString = "Endpoint=sb://*****.servicebus.windows.net/;SharedAccessKeyName=SendListen;SharedAccessKey=****";
var ns = NamespaceManager.CreateFromConnectionString(connectionString);
var result= ns.GetConsumerGroupAsync("**", "**").GetAwaiter().GetResult();
异常: 'The remote server returned an error: (401) Unauthorized. TrackingId:e2993246-9253-4cb7-ab54-2a9b32abfec7, SystemTracker:*.windows.net:dataoffload/ConsumerGroups/, Timestamp:8/11/2017 12:33:46 AM'
EventHub 最近有什么变化吗?
根据你的描述,我这边查了这个问题。这是我的测试,你可以参考一下。
设置 > 共享访问策略
代码片段:
var connString = "Endpoint=sb://{my-hubname}.servicebus.windows.net/;SharedAccessKeyName=SendListen;SharedAccessKey=aTu3sxJ1TMLXDWN6ErkHp28aVL/Fstfa49MkuibbQ7A=";
var ns = Microsoft.ServiceBus.NamespaceManager.CreateFromConnectionString(connString);
var result = ns.GetConsumerGroupAsync("myhub01", "$Default").GetAwaiter().GetResult();
根据设置,我可以检索我的消费者组的描述。此外,对于单个 Listen 策略,它也可以工作。根据您的错误,我建议您检查 CONNECTION STRING
。此外,您可以利用 fiddler 收集网络跟踪以获取详细信息。