【问题标题】:ping the service bus using queueClient使用 queueClient ping 服务总线
【发布时间】:2018-05-10 05:12:41
【问题描述】:

有什么方法可以只使用 queueClient ping 服务总线。或者只是检查我们是否能够在不处理消息的情况下连接到服务总线。 微软 Azure,c#

【问题讨论】:

  • 是的。你想到了什么?
  • 真的吗?能够做到这一点将非常有用,因此您可以检查对队列的访问(例如,作为健康检查)。但据我所知,如果没有高度提升的权限(即作为服务主体进行身份验证),您将无法轻松做到这一点。或者你知道@PeterBons 有什么优雅的方式吗?

标签: azure servicebus azure-servicebus-queues


【解决方案1】:

或者只是检查我们是否能够在不操作消息的情况下连接到服务总线

如果你想查看服务总线队列状态,我们可以使用WindowsAzure.ServiceBus

以下是演示代码。

string connectionString = "connection string";
var namespaceManager = NamespaceManager.CreateFromConnectionString(connectionString);
var queueDescription = namespaceManager.GetQueue("queue name");
var status = queueDescription.Status;

【讨论】:

  • 这并不能保证您可以从队列中读取/写入,对吧?我想一个更好的测试将是一个适当的端到端测试,其中包含一个测试队列,您可以在其中放置一条消息然后将其读回。
  • Or just check whether we are able to connect to service bus without manipulating the messages. 根据我的理解,OP不想用消息来测试它。只是想检查我们是否能够连接到服务总线。
  • 对,看到了,那我想我的问题更多是针对 OP 的。
  • 当我费力创建 QueueDescription 时,我会继续获取一些值,然后将它们放入 DTO 对象中。 docs.microsoft.com/en-us/dotnet/api/…
  • myDto.ActiveMessageCount = qd.MessageCountDetails.ActiveMessageCount; myDto.DeadLetterMessageCount = qd.MessageCountDetails.DeadLetterMessageCount; myDto.ScheduledMessageCount = qd.MessageCountDetails.ScheduledMessageCount; myDto.TransferDeadLetterMessageCount = qd.MessageCountDetails.TransferDeadLetterMessageCount; myDto.TransferMessageCount = qd.MessageCountDetails.TransferMessageCount;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-06
  • 1970-01-01
  • 2011-04-15
相关资源
最近更新 更多