HY,
我想在C#中使用ReceiveBatch-Methode(IEnumerable(Int64))。它需要IEnumerable(Int64 - > long)。我需要这个函数,因为在GetMessageNumber(topicName,subscriptionName)函数中我使用来自服务总线的实习生计数器,它返回一个long值。另一个接收函数只提供一个int。我尝试了这个函数,但我总是得到一个MessageNotFoundException,用户代码是unhadeld。
无法至少锁定指定的消息。消息不是 vorhanden..TrackingId:a2e6b0f0-fd3d-4594-935d-936ff7b3210c_GLBHPC0474_BLBHPC0474,时间戳:2014年3月28日 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)并且它有效。问题是我需要具有long值的函数以及为什么他们使用IEnumerable来使用64位值的receive函数?如何才能使用64位值正确的函数?
IEnumerable<BrokeredMessage> messages = null;
long messageNumber = GetMessageNumber(topicName, subscriptionName);
try
{
//Receives a message using the InternalReceiver.
messages = subscriptionClient.ReceiveBatch(messageNumber);
祝你好运
答案 0 :(得分:2)
ReceiveBatch(maxMessageCount)API用于获取下一批消息,其中返回的消息数限制为maxMessageCount值。当你使用&#34; MessageNumber&#34;你在某种程度上暗示了一条消息的ID吗?这不是ReceveBatch的意图。如果您可以澄清情景,那么我们可以提供更多指导。