从ASP.NET Core 2.0控制台应用程序监视Azure Service Bus队列深度

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

我试图从ASP.NET Core 2.0控制台应用程序监视总队列深度和DeadLetterMessages队列深度。我见过使用NamespaceManager类的引用,如下所示:

var ns = NamespaceManager.CreateFromConnectionString(sbConnectionString);
var queue = ns.GetQueue(queueName);
var count = queue.MessageCount;
var deadletterMessagesCount = queue.MessageCountDetails.DeadletterMessageCount;

(来自How do you get the count of dead letter messages in an Azure Service Bus queue?

但NamespaceManager位于Microsoft.ServiceBus中,与ASP.NET Core不兼容。

有关如何获取消息的任何建议?

c# .net-core azureservicebus
1个回答
0
投票

有关如何获取消息的任何建议?

正如Mikhail所说,目前对Microsoft.Azure.ServiceBus不支持。

如果您想在.net核心平台上使用Azure SDK获取消息计数,我建议您可以使用Microsoft.Azure.Management.Fluent来实现。

以下是演示代码。

 //auth file:c:\tom\azureCredential.txt
 var credentials = SdkContext.AzureCredentialsFactory.FromFile(@"c:\tom\azureCredential.txt"); 
 var azure = Azure
             .Configure()
             .WithLogLevel(HttpLoggingDelegatingHandler.Level.Basic)
             .Authenticate(credentials)
             .WithDefaultSubscription();

 var serviceBus = azure.ServiceBusNamespaces.GetByResourceGroup("Resource group name", "servicebus namespace");
 var queue = serviceBus.Queues.GetByName("queueName");
 var activeMessageCount = queue.ActiveMessageCount;
 var deadletterCount = queue.DeadLetterMessageCount;

注意:queue.MessageCount是包含DeadLetterMessage的所有消息的编号。

如何create an Azure Active Directory applicationassign application to role

如何创建auth文件请参考auth file formats

subscription=########-####-####-####-############
client=########-####-####-####-############
tenant=########-####-####-####-############
key=XXXXXXXXXXXXXXXX
managementURI=https\://management.core.windows.net/
baseURL=https\://management.azure.com/
authURL=https\://login.windows.net/
graphURL=https\://graph.windows.net/

测试结果:

enter image description here

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