昨天我能够重复阅读我自己创建的Azure Service Bus主题订阅中的消息。然而,今天,虽然使用与昨天相同的代码,但是尽管订阅的消息数远远超过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,主题订阅状态=已启用,并且没有检查有关移动消息的复选框。
我很感激任何想法。
答案 0 :(得分:4)
我找到了问题的解决方案;只需删除订阅并重新添加即可。然而,这就是为什么我无法阅读这些消息。以下thread on stackoverflow让我相信这些消息是死信,尽管屏幕截图显示不是这样。
如果我找出问题的原因,我会更新这个答案。