【问题标题】:How to read from service bus topic deadletter queue c#?如何从服务总线主题死信队列 C# 中读取?
【发布时间】:2019-12-24 13:27:26
【问题描述】:

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

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)
{

现在我想对 Service Bus 主题 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)
    {

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

【问题讨论】:

    标签: c# azure azureservicebus azure-servicebus-topics


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2020-07-19
      • 1970-01-01
      • 2018-04-01
      • 2017-02-13
      • 2014-12-09
      • 1970-01-01
      • 2017-08-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多