【问题标题】:Receiving message from Azure Topic yields null, topic has unread messages从 Azure 主题接收消息产生 null,主题有未读消息
【发布时间】:2014-02-13 07:59:17
【问题描述】:

昨天,我能够从我自己创建的 Azure 服务总线主题的订阅中重复读取消息。然而,今天,虽然使用与昨天相同的代码,但所有消息都是空的,尽管订阅的消息数远高于 0。让我详细说明一下:

按照 MSDN 网站上有关如何 read messages from subscription ,我正在使用以下内容从订阅客户端读取消息:

var tokenProvider = TokenProvider.CreateSharedSecretTokenProvider("MySubscriber","MyKey");
var serviceUri = ServiceBusEnvironment.CreateServiceUri("sb", "MyNamespace", string.Empty);
var messagingFactory = MessagingFactory.Create(serviceUri, tokenProvider);
var subscriptionClient = messagingFactory.CreateSubscriptionClient("MyTopicName", "MySubscriptionName", ReceiveMode.PeekLock);

var brokeredMessage = subscriptionClient.Receive();

今天,brokeredMessage 变量始终为 null,但从以下屏幕截图中可以看出,订阅中有几条消息。

那么为什么 brokeredMessage == null 呢?

主题的设置已在管理门户中设置为:默认消息生存时间 = 1 小时,重复检测历史 = 10 分钟,未设置发布前过滤消息,主题状态 = 启用,无共享访问政策。

与订阅类似,设置为:默认消息生存时间 = 10 分钟,锁定持续时间 = 5 秒,最大传递计数 = 10,主题订阅状态 = 已启用,并且未选中任何有关移动消息的复选框.

如有任何想法,我将不胜感激。

【问题讨论】:

    标签: c# azure servicebus


    【解决方案1】:

    我找到了解决问题的方法;只需删除订阅并重新添加即可。然而,这就是为什么我无法阅读这些消息的原因。以下thread on stackoverflow 让我相信这些消息是死信,尽管屏幕截图显示并非如此。

    如果我找出问题的原因,我会更新这个答案。

    【讨论】:

    • 我遇到了完全相同的问题。我可以通过发送更大的消息来重现它。 64kb 似乎可以做到。消息没有被正常进程接收,并且它们不在死信队列中。
    • 我遇到了同样的问题。非常感谢您的解决方法。
    猜你喜欢
    • 2018-05-05
    • 2023-03-28
    • 1970-01-01
    • 2011-12-12
    • 1970-01-01
    • 1970-01-01
    • 2018-07-22
    • 1970-01-01
    • 2019-09-09
    相关资源
    最近更新 更多