Azure 服务总线:如何获取主题

问题描述 投票:0回答:1

我对 Azure 服务总线完全陌生,只是为了学习,我试图获取主题。如果我没记错的话,我应该使用

ServiceBusAdministrationClient
类,但是当我尝试实现我的目标时,我收到错误“InvalidSignature:令牌具有无效签名”。

我正在使用最简单的构造函数(https://learn.microsoft.com/en-us/dotnet/api/azure.messaging.servicebus.administration.servicebusadministrationclient.-ctor?view=azure-dotnet#azure-messaging -servicebus-administration-servicebusadministrationclient-ctor(system-string) ) 传递相同的连接字符串,允许我使用

ServiceBusClient
发送和接收消息。

理论上我应该能够使用相同的连接字符串来做到这一点,我认为因为 Paolo Salvatori 开发的 Service Bus Explorer (https://github.com/paolosalvatori/ServiceBusExplorer) 能够使用相同的连接字符串来做到这一点连接字符串。我错了还是我需要不同的连接字符串?

这是我的代码(从另一篇文章复制):

var administrationClient = new ServiceBusAdministrationClient(ConnectionString);
AsyncPageable<TopicProperties> allTopics = administrationClient.GetTopicsAsync();
await foreach (TopicProperties topic in allTopics)
{
    Console.WriteLine($"IterateTopicsWithAwaitForeachAsync: {topic.Name}");
}

任何人都可以解释一下我做错了什么吗?

ps。我正在使用 .net 8

azure azureservicebus azure-servicebus-topics
1个回答
0
投票
var administrationClient = new ServiceBusAdministrationClient(ConnectionString);
AsyncPageable<TopicProperties> allTopics = administrationClient.GetTopicsAsync();
await foreach (TopicProperties topic in allTopics)
{
    Console.WriteLine($"IterateTopicsWithAwaitForeachAsync: {topic.Name}");
}

这段代码运行良好。我会仔细检查你的连接字符串。另外,值得注意的是,管理客户端默认通过 HTTP 工作,而数据客户端默认通过 AMQP 工作。因此,如果 HTTP 流量被阻止,您的数据操作可能会正常进行,而管理操作可能会失败。

© www.soinside.com 2019 - 2024. All rights reserved.