繁体   English   中英

Windows Service Bus接收函数64bit int

[英]Windows Service Bus receive function 64bit int

HY,

我想在C#中使用ReceiveBatch-Methode(IEnumerable(Int64))。 它需要一个IEnumerable(Int64-> long)。 我需要此函数,因为在GetMessageNumber(topicName,subscriptionName)函数中,我使用服务Bus wihich中的内部计数器返回一个长值。 另一个接收函数仅提供一个int。 我尝试了此功能,但始终收到用户代码未隐藏的MessageNotFoundException。

无法锁定至少一个指定的消息。 该消息不是vorhanden..TrackingId:a2e6b0f0-fd3d-4594-935d-936ff7b3210c_GLBHPC0474_BLBHPC0474,TimeStamp:28.03.2014 13:41:57

http://msdn.microsoft.com/de-de/library/jj657801.aspx

        IEnumerable<long> messageNumber = new long[]
        {
            GetMessageNumber(topicName, subscriptionName)
        };

        IEnumerable<BrokeredMessage> messages = null;

            try
            {
                //Receives a message using the InternalReceiver.
                messages = subscriptionClient.ReceiveBatch(messageNumber);

但是我使用int函数ReceiveBatch-Methode(Int32)进行了尝试,并且可以正常工作。 问题是我需要长值的函数,为什么他们使用IEnumerable来使用64位值的接收函数? 我如何才能正确使用64位值来使用该功能?

        IEnumerable<BrokeredMessage> messages = null;

        long messageNumber = GetMessageNumber(topicName, subscriptionName);

            try
            {
                //Receives a message using the InternalReceiver.
                messages = subscriptionClient.ReceiveBatch(messageNumber);

最好的祝福

ReceiveBatch(maxMessageCount)API用于获取下一批消息,其中返回的消息数限制为maxMessageCount值。 使用“ MessageNumber”时,是否以某种方式暗示了消息的ID? 那不是ReceveBatch要做的。 如果您可以阐明情况,那么我们可以提供更多指导。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM