列出 ServiceBus 命名空间中的所有 Azure 服务总线订阅
List all Azure servicebus subscriptions in a ServiceBus namespace
我正在将我的项目从 WindowsAzure.ServiceBus
迁移到新的 Microsoft.Azure.Servicebus
NuGet 包。
问题是我无法找到在我的服务总线命名空间中列出所有当前 topics/subscriptions 的方法。
这是我之前使用旧 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
这是专注于 queues & topics
的下一代服务总线 .NET 客户端库。您可以从 github 获得有关 Microsoft.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();
我正在将我的项目从 WindowsAzure.ServiceBus
迁移到新的 Microsoft.Azure.Servicebus
NuGet 包。
问题是我无法找到在我的服务总线命名空间中列出所有当前 topics/subscriptions 的方法。
这是我之前使用旧 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
这是专注于 queues & topics
的下一代服务总线 .NET 客户端库。您可以从 github 获得有关 Microsoft.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();