0

同じ一連のメッセージをまとめて処理する必要があり、そのために Azure Service Bus Sessions Enabled 機能を試していました。これをテストするために、非常に単純なアプリケーションを作成しました。メッセージはキューに正常に送信されますが、「ReceiveSessionMessage」関数でメッセージを受信しようとすると、メッセージ セッションが返されず、この行の後にプログラムが終了します。

正確な根本原因を突き止めることはできません。どんな助けでも大歓迎です。ありがとう

[var messageSession = await sessionClient.AcceptMessageSessionAsync();]

プログラム

using Microsoft.Azure.ServiceBus;
using System;
using System.Text;
using System.Threading.Tasks;

namespace TestSendReceiveMessagesAzure
{
    class Program
    {
        static string connectionString = "";
        static string queueName = "demosessionqueue";

        static void Main(string[] args)
        {
            Console.WriteLine("Test Service Bus Session! enable feature");
            SendMessage();
            Console.WriteLine("Message Pushed");
            ReceiveSessionMessage();
        }

        private static void SendMessage()
        {
            QueueClient queueClilent = new QueueClient(connectionString, queueName, ReceiveMode.PeekLock);
            string msgJson = "{PizzaType:Veggie,SessionID:SessionId0101}";
            Message message = new Message(Encoding.UTF8.GetBytes(msgJson))
            {
                SessionId = "SessionId0101"
            };
            Console.WriteLine(msgJson);
            queueClilent.SendAsync(message).Wait();
        }

        private static async Task ReceiveSessionMessage()
        {
            var sessionClient = new SessionClient(connectionString, queueName, ReceiveMode.PeekLock);
            Console.WriteLine("Accepting a message session...");
            try
            {
                var messageSession = await sessionClient.AcceptMessageSessionAsync();
                Console.WriteLine($"Message.SessionID={messageSession.SessionId}");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.StackTrace);
            }
        }
    }
}

コンソール出力

ここに画像の説明を入力

4

1 に答える 1