我正在编写一个“服务总线监视器”[Windows]服务,以便我们能够密切关注我们的主题/订阅,并遇到一个有趣的问题。 (当然,“有趣”我的意思是“超级frick'en烦人。”)
对于我的每个主题/订阅对,我创建了一个SubscriptionDescription,以便我可以获取MessageCount。这很好用。
var subscriptionDescription = namespaceManager.GetSubscription(
busTargetModel.Topic, busTargetModel.Subscription);
var messageCountThisSubscription = subscriptionDescription.MessageCount;
然而,在一个特殊情况下,messageCountThisSubscription == 51,我碰巧知道 所有51实际上都坐在死信箱/队列/什么,但是,当我试图得到MessageCountDetails ...
// I actually make this call BEFORE the MessageCount call above.
// (In case that matters somehow)
var messageCountDetails = subscriptionDescription.MessageCountDetails;
...所有5个属性(ActiveMessageCount,DeadLetterMessageCount,ScheduledMessageCount,TransferDeadLetterMessageCount和TransferMessageCount)的值为0(零!)
我不能为我的生活想象我在这里做错了什么;看起来很直接,但是...... ZEROS。
思考,见解,任何帮助表示赞赏!
(这是针对Windows Server的Service Bus,但我没有看到任何标签,除了所有的Azure内容,而且从我读过的内容来看,它们并不是相同的......至少现在还没有,所以希望我得到正确的标签。)
答案 0 :(得分:3)
斯科特 适用于Windows Server的Service Bus 1.0不支持邮件计数详细信息。该位功能是在锁定位后实现的,因此这些属性不会返回预期值。我们为服务总线的服务器和服务提供了一个对称(单个)客户端库,因此您可以看到它们可用但仅在定位服务或最近发布的Service Server 1.1 for Windows Server预览时填充这些值。您可以从WebPI安装此文件,更多详细信息请访问:http://msdn.microsoft.com/en-us/library/windowsazure/dn282144(v=azure.10).aspx