如何从服务总线主题死信队列 c# 中读取?

How to read from service bus topic deadletter queue c#?

下面的代码可以很好地读取服务总线队列死信,但对于主题,即使在更改路径之后它抛出的异常路径也不正确。

string path= "QueueName";

MessagingFactory messageFactory = MessagingFactory.CreateFromConnectionString("ConnecitonString");

MessageReceiver deadletterReceiver = await         messageFactory.CreateMessageReceiverAsync(QueueClient.FormatDeadLetterPath(path), ReceiveMode.PeekLock);

MessageSender sender = await messageFactory.CreateMessageSenderAsync(path);

BrokeredMessage deadLetter = await deadletterReceiver.ReceiveAsync(TimeSpan.Zero);
if (deadLetter != null)
{

现在我想对服务总线主题 DeadLetter 做同样的事情 所以路径应该是 - topicName/subscriptionName

 string path= "TopicName/SubscriptionName";

    MessagingFactory messageFactory = MessagingFactory.CreateFromConnectionString("ConnecitonString");

    MessageReceiver deadletterReceiver = await messageFactory.CreateMessageReceiverAsync(TopicClient.FormatDeadLetterPath(path), ReceiveMode.PeekLock);

    MessageSender sender = await messageFactory.CreateMessageSenderAsync(path);

    BrokeredMessage deadLetter = await deadletterReceiver.ReceiveAsync(TimeSpan.Zero);
    if (deadLetter != null)
    {

获取异常路径不正确...

主题没有死信队列,订阅有。您需要使用它的 SubscriptionClient.FormatDeadLetterPath(String, String) 方法,传递主题和订阅名称。