gpt4 book ai didi

azure - 列出 ServiceBus 命名空间中的所有 Azure 服务总线订阅

转载 作者:行者123 更新时间:2023-12-02 06:46:31 25 4
gpt4 key购买 nike

我正在将我的项目从 WindowsAzure.ServiceBus 迁移到新的 Microsoft.Azure.Servicebus NuGet 包。

问题是我无法找到一种方法来列出我的 servicebus 命名空间中的所有当前主题/订阅。

这是我之前在旧 NuGet 包中使用的代码片段:

var namespaceManager = NamespaceManager.CreateFromConnectionString("ServiceBusConnectionString");

foreach (var topic in await namespaceManager.GetTopicsAsync())
{
foreach (var subscription in await namespaceManager.GetSubscriptionsAsync(topic.Path))
{
//do something
}
}
foreach (var queue in await namespaceManager.GetQueuesAsync())
{
//do something
}

编辑:最新版本支持列出所有主题、订阅和队列。

var managementClient = new ManagementClient("ServiceBusConnectionString");

foreach (var topic in await _managementClient.GetTopicsAsync())
{
foreach (var subscription in await _managementClient.GetSubscriptionsAsync(topic.Path))
{
//do something
}
}

最佳答案

Microsoft.Azure.Servicebus 这是下一代服务总线 .NET 客户端库,专注于队列和主题。您可以获得有关 Microsoft 的更多信息来自github的.Azure.Servicebus .

如果你需要管理操作,新客户端不会提供。我建议您最好使用管理库或等到 NamespaceManager 的替换包推出。

如果可以管理库,则使用以下内容列出订阅的演示代码。有关如何使用管理库的更多详细信息,您可以引用另一个SO thread .

var credentials = SdkContext.AzureCredentialsFactory.FromFile(@"authpath");
var azure = Azure
.Configure()
.WithLogLevel(HttpLoggingDelegatingHandler.Level.Basic)
.Authenticate(credentials)
.WithDefaultSubscription();
var sbNameSpace = "service bus subscription";
var resoureGroup = "resourcegroup";
var topicName = "topicName"
var servicebus = azure.ServiceBusNamespaces.GetByResourceGroup(resoureGroup, sbNameSpace);
var topic = servicebus.Topics.GetByName(topicName);
var subscription = topic.Subscriptions.List();

关于azure - 列出 ServiceBus 命名空间中的所有 Azure 服务总线订阅,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49625955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com