无法使用CreateTopic Async在Service Bus中创建新主题

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

我正在尝试使用库Microsoft.Azure.ServiceBus.Management的方法CreateTopicAsync创建一个新的主题(然后是订阅)。连接字符串是正确的,如果我通过Azure门户创建主题,我可以发送和接收消息。我究竟做错了什么?任何帮助表示赞赏。

var managementClient = new ManagementClient(ServiceBusConnectionString);
bool topicExists = await managementClient.TopicExistsAsync(TopicName).ConfigureAwait(false);
if (!topicExists) {
    TopicDescription td = new TopicDescription(TopicName);
    td.MaxSizeInMB = 1024;
    td.DefaultMessageTimeToLive = new TimeSpan(2, 0, 0, 0);
    await managementClient.CreateTopicAsync(td).ConfigureAwait(false);
}
c# azure servicebus
1个回答
0
投票

虽然Service Bus ConnectionString可能是正确的,但是为了使您的应用程序能够创建主题,它需要使Manage正确(声明)。

来自Service Bus access control with Shared Access Signatures

对于每个授权策略规则,您可以决定三个信息:名称,范围和权限。这个名字就是这样;该范围内的唯一名称。范围很简单:它是相关资源的URI。对于Service Bus命名空间,范​​围是完全限定的域名(FQDN),例如https://.servicebus.windows.net/。

策略规则赋予的权利可以是以下组合:

  • '发送' - 赋予向实体发送消息的权利
  • 'Listen' - 赋予监听(中继)或接收(队列,订阅)和所有相关消息处理的权利
  • “管理” - 赋予管理命名空间拓扑的权限,包括创建和删除实体

“管理”权限包括“发送”和“接收”权限。

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