Azure Service Bus Queue缺少消息

时间:2016-08-26 18:19:30

标签: azure azureservicebus

我有一个Azure Service Bus队列,它没有收到发送给它的所有消息。我有2个测试控制台应用程序(C#)一个用于发送消息,另一个用于接收显示此消息。这些丢失的消息都没有进入DLQ,也没有抛出任何异常。 以下是每个控制台应用程序的相关代码。 发送:

    var connectionString = "Endpoint=sb://xxxxxx.servicebus.windows.net/;SharedAccessKeyName=client;SharedAccessKey=xxxxxx=;EntityPath=xxxxxx";
    var client = QueueClient.CreateFromConnectionString(connectionString);

    int nCount = 0;
    try
    {
        while (true)
        {
            string strBody = "Msg number:" + nCount;
            var message = new BrokeredMessage(strBody);
            client.Send(message);
            Console.WriteLine(DateTime.Now.ToString() + " Received Body: " + strBody);
            nCount++;
            Thread.Sleep(10000);
        }
    }
    catch (Exception exception)
    {
        Console.WriteLine(exception.ToString());
    }

接收:

    var connectionString = "Endpoint=sb://xxxxxx.servicebus.windows.net/;SharedAccessKeyName=server;SharedAccessKey=xxxxxx;EntityPath=xxxxxx";
    var Client = QueueClient.CreateFromConnectionString(connectionString);
    Console.WriteLine("Started At: " + DateTime.Now.ToString());

    ManualResetEvent CompletedEvent = new ManualResetEvent(false);

    OnMessageOptions options = new OnMessageOptions();
    options.AutoComplete = true; 
    options.MaxConcurrentCalls = 1; 

    Client.OnMessage((message) => 
    {
        try
        {
            Console.WriteLine(string.Format(DateTime.Now.ToString() + " Message Body Received: {0}", message.GetBody<string>()));
        }
        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }
    }, options);

我不认为接收是问题,就好像我关闭接收测试应用程序,只有一些消息按照Azure门户进入队列。

附带的图片显示正在运行的应用Test apps

左侧控制台发送,右侧接收。忽略在发送控制台中,它意外地说“已接收的身体”,应该说“已发送”。

此外,使用Service Bus Explorer我也看不到丢失的消息,使其进入队列。我尝试创建一个新队列,虽然有更多消息进入这个新队列,但仍然不是100%。更像是80%。

0 个答案:

没有答案