使用SendListen共享访问密钥到GetConsumerGroupAsync时未经授权的错误

时间:2017-08-11 00:47:26

标签: azure-eventhub

我们在尝试使用SendListen密钥访问使用者组时,从昨天开始观察以下错误。它抛出了未经授权的错误。如果我使用RootManagerSharedAccessKey,这可以正常工作。

var connectionString = "Endpoint=sb://*****.servicebus.windows.net/;SharedAccessKeyName=SendListen;SharedAccessKey=****";
        var ns = NamespaceManager.CreateFromConnectionString(connectionString);
        var result= ns.GetConsumerGroupAsync("**", "**").GetAwaiter().GetResult();

例外: '远程服务器返回错误:(401)未经授权。 TrackingId:e2993246-9253-4cb7-ab54-2a9b32abfec7,SystemTracker: * .windows.net:dataoffload/ConsumerGroups/ ,时间戳:8/11/2017 12:33:46 AM'

EventHub最近有什么变化吗?

1 个答案:

答案 0 :(得分:1)

根据你的描述,我在我这边检查了这个问题。这是我的测试,你可以参考它。

设置>共享访问政策

enter image description here

代码段:

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收集网络跟踪以获取详细信息。