我一直在网上和GitHub上寻找Azure服务总线的现成死信查看器。这是为了让我们的DevOps团队能够监控,查看和报告我们总线上每个主题的每个订阅的任何死信。
我认为这将是向DevOps分发的常见应用程序,所以相信那里已经存在一个。所以在我开始使用自己的Windows窗体应用程序之前,是否有一个我可能错过的现有查看器?
答案 0 :(得分:4)
经过几次创意搜索之后,我发现Paolo Salvatori的项目“Service Bus Explorer”正是我所需要的。我希望这有助于其他人寻找同样的事情。
可以在Microsoft Azure和示例代码下的code.msdn.microsoft.com站点上找到它。
https://code.msdn.microsoft.com/windowsazure/Service-Bus-Explorer-f2abca5a
答案 1 :(得分:1)
"一个简单的控制台应用程序对您实现查看服务总线队列或主题订阅中的死信消息的目标非常有帮助。您唯一需要做的就是以peeklock模式从Queue或Topic Subscription的死信路径接收消息并显示所需的消息详细信息。
这是一个简单的控制台应用程序的代码,用于显示死信消息。
using System;
using System.Threading.Tasks;
using Microsoft.ServiceBus.Messaging;
namespace DeadLetterQueue
{
class Program
{
/*Supply the connection string of your Service Bus Namespace here*/
const string connectionString = "connection string of your Service Bus Namespace";
/*Supply the Name of your Service Bus Entity */
const string entityName = "Entity Name";
/*Supply the Number of deadletter messages you need to retrieve from your Entity here*/
const int numberOfMessages = 5;
static void Main(string[] args)
{
ViewDeadLetterMessages().GetAwaiter().GetResult();
Console.ReadKey();
}
static async Task ViewDeadLetterMessages()
{
MessagingFactory messageFactory = MessagingFactory.CreateFromConnectionString(connectionString);
Console.WriteLine(""DeadLetter Messages of {0}"", entityName);
//Getting the deadletter path of the Service Bus Entity
string _path = QueueClient.FormatDeadLetterPath(queueName);
for (int i = 0; i < numberOfMessages; i++)
{
var queueClient = await messageFactory.CreateMessageReceiverAsync(_path, ReceiveMode.PeekLock);
BrokeredMessage _message = await queueClient.ReceiveAsync();
Console.WriteLine(""MessageId Message {0} - {1} "", i, _message.MessageId);
_message.Complete();
_message.Abandon();
}
}
}
}
答案 2 :(得分:0)
尽管"Service Bus Explorer" by Paolo Salvatori是用于管理消息传递实体并与之交互的出色UI工具,但现在可以直接从Azure门户本身直接处理诸如发送/接收/查看之类的基本操作。
Azure门户现在提供了一个service bus explorer (preview)工具,可以直接从门户本身对队列/主题及其死信子实体执行基本操作(例如发送,接收,查看)。查看有关使用此工具的详细说明的链接-azure-service-bus-message-explorer。
另外,请参考我对How to peek the deadletter messages的回答