Rövid útmutató: Üzenetek küldése és fogadása egy Azure Service Bus-üzenetsorból (.NET)

Ebben a rövid útmutatóban a következő lépéseket fogja elvégezni:

  1. Service Bus-névtér létrehozása az Azure Portal használatával.

  2. Service Bus-üzenetsor létrehozása az Azure Portal használatával.

  3. Írjon egy .NET-konzolalkalmazást, hogy üzeneteket küldjön az üzenetsorba.

  4. Írjon egy .NET-konzolalkalmazást az üzenetsorból érkező üzenetek fogadásához.

    Feljegyzés

    Ez a rövid útmutató részletes útmutatást nyújt egy egyszerű forgatókönyv implementálásához, amely egy üzenetköteget küld egy Service Bus-üzenetsorba, majd fogadja őket. A .NET-ügyfélkódtár áttekintését a .NET-hez készült Azure Service Bus ügyfélkódtárban tekintheti meg. További mintákért tekintse meg a Service Bus .NET-mintákat a GitHubon.

Előfeltételek

Ha még nem ismerkedik a szolgáltatással, a rövid útmutató előtt tekintse meg a Service Bus áttekintését .

  • Azure-előfizetés. Az Azure-szolgáltatások, köztük az Azure Service Bus használatához előfizetésre van szükség. Ha nem rendelkezik meglévő Azure-fiókkal, regisztrálhat egy ingyenes próbaverzióra.
  • Visual Studio 2022. A mintaalkalmazás a C# 10-ben bevezetett új funkciókat használja. A Service Bus ügyfélkódtárat továbbra is használhatja a korábbi C#-nyelvi verziókkal, de a szintaxis eltérő lehet. A legújabb szintaxis használatához javasoljuk, hogy telepítse a .NET 6.0-s vagy újabb verzióját, és állítsa a nyelvi verziót a következőre latest: . Ha Visual Studio-t használ, a Visual Studio 2022 előtti verziók nem kompatibilisek a C# 10-projektek létrehozásához szükséges eszközökkel.

Névtér létrehozása az Azure Portalon

A Service Bus-üzenetküldési entitások Azure-ban való használatának megkezdéséhez először létre kell hoznia egy, az Azure-ban egyedi névvel rendelkező névteret. A névtér egy hatókör-tárolót biztosít a Service Bus-erőforrásokhoz (üzenetsorokhoz, témakörökhöz stb.) az alkalmazásban.

Névtér létrehozása:

  1. Jelentkezzen be az Azure Portalra.

  2. Lépjen a Minden szolgáltatás lapra.

  3. A bal oldali navigációs sávon válassza az Integráció lehetőséget a kategóriák listájából, vigye az egérmutatót a Service Bus fölé, majd válassza a + Service Bus csempén található gombot.

    Image showing selection of Create a resource, Integration, and then Service Bus in the menu.

  4. A Névtér létrehozása lap Alapszintű címkéjében kövesse az alábbi lépéseket:

    1. Előfizetés esetén válassza ki azt az Azure-előfizetést, amelyben létre szeretné hozni a névteret.

    2. Erőforráscsoport esetén válasszon ki egy meglévő erőforráscsoportot, amelyben a névtér él, vagy hozzon létre egy újat.

    3. Adja meg a névtér nevét. A névtér nevének meg kell felelnie a következő elnevezési konvencióknak:

      • A névnek egyedinek kell lennie az Azure-ban. A rendszer azonnal ellenőrzi, hogy a név elérhető-e.
      • A név hossza legalább 6 és legfeljebb 50 karakter lehet.
      • A név csak betűket, számokat, "-" kötőjeleket tartalmazhat.
      • A névnek betűvel kell kezdődnie, és betűvel vagy számmal kell végződnie.
      • A név nem "-sb" vagy "-mgmt" végződésű.
    4. A Hely területen válassza ki azt a régiót, amelyben a névteret üzemeltetni kell.

    5. Tarifacsomag esetén válassza ki a névtérhez tartozó tarifacsomagot (Alapszintű, Standard vagy Prémium). Ebben a rövid útmutatóban válassza a Standard lehetőséget.

      Fontos

      Ha témaköröket és előfizetéseket szeretne használni, válassza a Standard vagy a Premium lehetőséget. Az alapszintű tarifacsomag nem támogatja a témaköröket/előfizetéseket.

      Ha a Prémium tarifacsomagot választotta, adja meg az üzenetkezelési egységek számát. A prémium szint erőforrás-elkülönítést biztosít a CPU és a memória szintjén, így minden számítási feladat külön fut. Ennek az erőforrás-tárolónak a neve üzenetkezelési egység. A prémium szintű névtér legalább egy üzenetkezelési egységgel rendelkezik. Minden Service Bus Premium-névtérhez választhat 1, 2, 4, 8 vagy 16 üzenetkezelési egységet. További információ: Service Bus Premium Messaging.

    6. Válassza a Véleményezés + létrehozás lehetőséget a lap alján.

      Image showing the Create a namespace page

    7. A Véleményezés + létrehozás lapon tekintse át a beállításokat, és válassza a Létrehozás lehetőséget.

  5. Miután az erőforrás üzembe helyezése sikeres volt, válassza az Erőforrás megnyitása lehetőséget az üzembe helyezési lapon.

    Image showing the deployment succeeded page with the Go to resource link.

  6. Megjelenik a service bus-névtér kezdőlapja.

    Image showing the home page of the Service Bus namespace created.

Üzenetsor létrehozása az Azure Portalon

  1. A Service Bus Névtér lapján válassza az Üzenetsorok lehetőséget a bal oldali navigációs menüben.

  2. Az Üzenetsorok lapon válassza az eszköztár + Üzenetsor lehetőséget.

  3. Adja meg az üzenetsor nevét, és hagyja meg a többi értéket az alapértelmezett értékekkel.

  4. Most válassza a Létrehozás lehetőséget.

    Image showing creation of a queue in the portal

Fontos

Ha még nem ismerkedik az Azure-sal, könnyebben követheti a Csatlakozás ion String lehetőséget. Válassza a Csatlakozás ion String (Sztring) lapot az kapcsolati sztring használatára vonatkozó utasítások megtekintéséhez ebben a rövid útmutatóban. Javasoljuk, hogy a jelszó nélküli beállítást valós alkalmazásokban és éles környezetekben használja.

Az alkalmazás hitelesítése az Azure-ban

Ez a rövid útmutató az Azure Service Bushoz való csatlakozás két módját mutatja be: jelszó nélküli és kapcsolati sztring.

Az első lehetőség bemutatja, hogyan használhatja a biztonsági tagot a Microsoft Entra-azonosítóban és a szerepköralapú hozzáférés-vezérlésben (RBAC) a Service Bus-névtérhez való csatlakozáshoz. Nem kell aggódnia amiatt, hogy a kódban, a konfigurációs fájlban vagy egy biztonságos tárolóban, például az Azure Key Vaultban keményen kódolt kapcsolati sztring kell lennie.

A második lehetőség bemutatja, hogyan csatlakozhat egy Service Bus-névtérhez egy kapcsolati sztring. Ha még nem ismerkedik az Azure-sal, könnyebben követheti a kapcsolati sztring lehetőséget. A jelszó nélküli beállítást a valós alkalmazásokban és éles környezetekben javasoljuk. További információ: Hitelesítés és engedélyezés. A jelszó nélküli hitelesítésről az áttekintési oldalon olvashat bővebben.

Szerepkörök hozzárendelése a Microsoft Entra-felhasználóhoz

Helyi fejlesztéskor győződjön meg arról, hogy az Azure Service Bushoz csatlakozó felhasználói fiók rendelkezik a megfelelő engedélyekkel. Az üzenetek küldéséhez és fogadásához szüksége lesz az Azure Service Bus adattulajdonosi szerepkörére. A szerepkör hozzárendeléséhez szüksége lesz a Felhasználói hozzáférés Rendszergazda istrator szerepkörre, vagy egy másik szerepkörre, amely tartalmazza a Microsoft.Authorization/roleAssignments/write műveletet. Azure RBAC-szerepköröket rendelhet egy felhasználóhoz az Azure Portal, az Azure CLI vagy az Azure PowerShell használatával. További információ a szerepkör-hozzárendelések elérhető hatóköreiről a hatókör áttekintési oldalán.

Az alábbi példa hozzárendeli a szerepkört a Azure Service Bus Data Owner felhasználói fiókjához, amely teljes hozzáférést biztosít az Azure Service Bus-erőforrásokhoz. Egy valós forgatókönyvben kövesse a Minimális jogosultság elvét, hogy a felhasználók csak a biztonságosabb éles környezethez szükséges minimális engedélyeket adják meg a felhasználóknak.

Azure beépített szerepkörök az Azure Service Bushoz

Az Azure Service Bus esetében a névterek és az összes kapcsolódó erőforrás kezelése az Azure Portalon és az Azure Resource Management API-val már védett az Azure RBAC-modell használatával. Az Azure az alábbi beépített Azure-szerepköröket biztosítja a Service Bus-névtérhez való hozzáférés engedélyezéséhez:

  • Azure Service Bus-adattulajdonos: Lehetővé teszi a Service Bus-névtérhez és annak entitásaihoz (üzenetsorokhoz, témakörökhöz, előfizetésekhez és szűrőkhöz) való adathozzáférést. A szerepkör egy tagja üzeneteket küldhet és fogadhat üzenetsorokból vagy témakörökből/előfizetésekből.
  • Azure Service Bus-adatküldő: Ezzel a szerepkörrel hozzáférést adhat a Service Bus-névtérhez és annak entitásaihoz.
  • Azure Service Bus-adatfogadó: Ezzel a szerepkörrel hozzáférést adhat a Service Bus-névtérhez és annak entitásaihoz.

Ha egyéni szerepkört szeretne létrehozni, tekintse meg a Service Bus-műveletekhez szükséges jogosultságokat.

Microsoft Entra-felhasználó hozzáadása az Azure Service Bus tulajdonosi szerepköréhez

Adja hozzá a Microsoft Entra-felhasználónevet az Azure Service Bus-adattulajdonosi szerepkörhöz a Service Bus névtér szintjén. Lehetővé teszi, hogy a felhasználói fiók környezetében futó alkalmazások üzeneteket küldjenek egy üzenetsorba vagy egy témakörbe, és üzeneteket fogadhassanak egy üzenetsorból vagy egy témakör előfizetéséből.

Fontos

A legtöbb esetben egy-két percig tart, amíg a szerepkör-hozzárendelés propagálása az Azure-ban megtörténik. Ritkán akár nyolc percig is eltarthat. Ha hitelesítési hibákat kap a kód első futtatásakor, várjon néhány percet, és próbálkozzon újra.

  1. Ha nem nyitotta meg a Service Bus Névtér lapját az Azure Portalon, keresse meg a Service Bus-névteret a fő keresősávon vagy a bal oldali navigációs sávon.

  2. Az áttekintési lapon válassza a Hozzáférés-vezérlés (IAM) lehetőséget a bal oldali menüben.

  3. A Hozzáférés-vezérlés (IAM) lapon válassza a Szerepkör-hozzárendelések lapot.

  4. Válassza a +Hozzáadás lehetőséget a felső menüből, majd a szerepkör-hozzárendelés hozzáadása lehetőséget az eredményül kapott legördülő menüből.

    A screenshot showing how to assign a role.

  5. A keresőmezővel szűrheti az eredményeket a kívánt szerepkörre. Ebben a példában keresse meg Azure Service Bus Data Owner és válassza ki az egyező eredményt. Ezután válassza a Tovább gombot.

  6. A Hozzáférés hozzárendelése területen válassza a Felhasználó, csoport vagy szolgáltatásnév lehetőséget, majd válassza a + Tagok kijelölése lehetőséget.

  7. A párbeszédpanelen keresse meg a Microsoft Entra-felhasználónevet (általában a user@domain e-mail-címét), majd válassza a Párbeszédpanel alján található Kiválasztás lehetőséget.

  8. Válassza a Véleményezés + hozzárendelés lehetőséget a végső lapra való ugráshoz, majd a folyamat befejezéséhez a Véleményezés + hozzárendelés lehetőséget.

A Visual Studio elindítása és bejelentkezés az Azure-ba

A service bus-névtérhez való hozzáférést az alábbi lépések végrehajtásával engedélyezheti:

  1. Indítsa el a Visual Studiót. Ha megjelenik az Első lépések ablak, válassza a Folytatás kód nélkül hivatkozást a jobb oldali panelen.

  2. Válassza a Bejelentkezés gombot a Visual Studio jobb felső sarkában.

    Screenshot showing a button to sign in to Azure using Visual Studio.

  3. Jelentkezzen be a korábban szerepkörrel hozzárendelt Microsoft Entra-fiókkal.

    Screenshot showing the account selection.

Üzenetek küldése az üzenetsorba

Ez a szakasz bemutatja, hogyan hozhat létre .NET-konzolalkalmazást, amely üzeneteket küld egy Service Bus-üzenetsorba.

Feljegyzés

Ez a rövid útmutató részletes útmutatást nyújt egy egyszerű forgatókönyv implementálásához, amely egy üzenetköteget küld egy Service Bus-üzenetsorba, majd fogadja őket. További példákat a GitHub Service Bus .NET-mintáiban talál.

Konzolalkalmazás létrehozása

  1. A Visual Studióban válassza a Fájl –>Új –>Projekt menüt.

  2. Az Új projekt létrehozása párbeszédpanelen hajtsa végre a következő lépéseket: Ha nem látja ezt a párbeszédpanelt, válassza a Fájl lehetőséget a menüben, válassza az Új, majd a Projekt lehetőséget.

    1. A programozási nyelvhez válassza a C# lehetőséget.

    2. Válassza a Konzol lehetőséget az alkalmazás típusához.

    3. Válassza a Konzolalkalmazás lehetőséget az eredmények listájából.

    4. Ezután válassza a Tovább gombot.

      Image showing the Create a new project dialog box with C# and Console selected

  3. Adja meg a QueueSender nevet a projektnévhez, a ServiceBusQueueQuickStartot a megoldásnévhez, majd válassza a Tovább gombot.

    Image showing the solution and project names in the Configure your new project dialog box

  4. A További információ lapon válassza a Létrehozás lehetőséget a megoldás és a projekt létrehozásához.

NuGet-csomagok hozzáadása a projekthez

  1. Válassza az Eszközök>NuGet Csomagkezelő> Csomagkezelő konzol lehetőséget a menüből.

  2. Futtassa a következő parancsot az Azure.Messaging.ServiceBus NuGet-csomag telepítéséhez.

    Install-Package Azure.Messaging.ServiceBus
    
  3. Futtassa a következő parancsot az Azure.Identity NuGet-csomag telepítéséhez.

    Install-Package Azure.Identity
    

Üzenetsorba küldendő kód hozzáadása

  1. Cserélje le a tartalomra Program.cs a következő kódot. A fontos lépéseket a következő szakaszban ismertetjük, a kód megjegyzéseiben pedig további információk találhatók.

    Fontos

    Frissítse a kódrészlet helyőrző értékeit (<NAMESPACE-NAME> és <QUEUE-NAME>) a Service Bus-névtér és az üzenetsor nevével.

    using Azure.Messaging.ServiceBus;
    using Azure.Identity;
    
    // name of your Service Bus queue
    // the client that owns the connection and can be used to create senders and receivers
    ServiceBusClient client;
    
    // the sender used to publish messages to the queue
    ServiceBusSender sender;
    
    // number of messages to be sent to the queue
    const int numOfMessages = 3;
    
    // The Service Bus client types are safe to cache and use as a singleton for the lifetime
    // of the application, which is best practice when messages are being published or read
    // regularly.
    //
    // Set the transport type to AmqpWebSockets so that the ServiceBusClient uses the port 443. 
    // If you use the default AmqpTcp, ensure that ports 5671 and 5672 are open.
    var clientOptions = new ServiceBusClientOptions
    { 
        TransportType = ServiceBusTransportType.AmqpWebSockets
    };
    //TODO: Replace the "<NAMESPACE-NAME>" and "<QUEUE-NAME>" placeholders.
    client = new ServiceBusClient(
        "<NAMESPACE-NAME>.servicebus.windows.net",
        new DefaultAzureCredential(),
        clientOptions);
    sender = client.CreateSender("<QUEUE-NAME>");
    
    // create a batch 
    using ServiceBusMessageBatch messageBatch = await sender.CreateMessageBatchAsync();
    
    for (int i = 1; i <= numOfMessages; i++)
    {
        // try adding a message to the batch
        if (!messageBatch.TryAddMessage(new ServiceBusMessage($"Message {i}")))
        {
            // if it is too large for the batch
            throw new Exception($"The message {i} is too large to fit in the batch.");
        }
    }
    
    try
    {
        // Use the producer client to send the batch of messages to the Service Bus queue
        await sender.SendMessagesAsync(messageBatch);
        Console.WriteLine($"A batch of {numOfMessages} messages has been published to the queue.");
    }
    finally
    {
        // Calling DisposeAsync on client types is required to ensure that network
        // resources and other unmanaged objects are properly cleaned up.
        await sender.DisposeAsync();
        await client.DisposeAsync();
    }
    
    Console.WriteLine("Press any key to end the application");
    Console.ReadKey();
    
  2. Hozza létre a projektet, és győződjön meg arról, hogy nincsenek hibák.

  3. Futtassa a programot, és várja meg a megerősítést kérő üzenetet.

    A batch of 3 messages has been published to the queue
    

    Fontos

    A legtöbb esetben egy-két percig tart, amíg a szerepkör-hozzárendelés propagálása az Azure-ban megtörténik. Ritkán akár nyolc percig is eltarthat. Ha hitelesítési hibákat kap a kód első futtatásakor, várjon néhány percet, és próbálkozzon újra.

  4. Az Azure Portalon kövesse az alábbi lépéseket:

    1. Lépjen a Service Bus-névtérre.

    2. Az Áttekintés lapon válassza ki az üzenetsort az alsó-középső panelen.

      Image showing the Service Bus Namespace page in the Azure portal with the queue selected.

    3. Figyelje meg az Alapértékek szakaszban szereplő értékeket .

      Image showing the number of messages received and the size of the queue.

    Figyelje meg a következő értékeket:

    • Az üzenetsor Aktív üzenetszám értéke most 3. Minden alkalommal, amikor a feladó alkalmazást az üzenetek beolvasása nélkül futtatja, ez az érték 3-tal nő.
    • Az üzenetsor aktuális mérete minden alkalommal növekszik, amikor az alkalmazás üzeneteket ad hozzá az üzenetsorhoz.
    • Az alsó Metrikák szakaszban található Üzenetek diagramon láthatja, hogy az üzenetsor három bejövő üzenetből áll.

Üzenet fogadása az üzenetsorból

Ebben a szakaszban egy .NET-konzolalkalmazást hoz létre, amely üzeneteket fogad az üzenetsorból.

Feljegyzés

Ez a rövid útmutató részletes útmutatást nyújt egy olyan forgatókönyv implementálásához, amely egy üzenetköteget küld egy Service Bus-üzenetsorba, majd fogadja őket. További példákat a GitHub Service Bus .NET-mintáiban talál.

Projekt létrehozása a fogadó számára

  1. A Megoldáskezelő ablakban kattintson a jobb gombbal a ServiceBusQueueQuickStart megoldásra, mutasson a Hozzáadás pontra, és válassza az Új projekt lehetőséget.
  2. Válassza a Konzolalkalmazás lehetőséget, majd a Tovább gombot.
  3. Írja be a QueueReceiver nevet a projektnévhez, és válassza a Létrehozás lehetőséget.
  4. A Megoldáskezelő ablakban kattintson a jobb gombbal a QueueReceiver elemre, és válassza a Beállítás indítási projektként lehetőséget.

NuGet-csomagok hozzáadása a projekthez

  1. Válassza az Eszközök>NuGet Csomagkezelő> Csomagkezelő konzol lehetőséget a menüből.

  2. Válassza az Alapértelmezett projekthez tartozó QueueReceiver lehetőséget.

    Screenshot showing QueueReceiver project selected in the Package Manager Console.

  3. Futtassa a következő parancsot az Azure.Messaging.ServiceBus NuGet-csomag telepítéséhez.

    Install-Package Azure.Messaging.ServiceBus
    
  4. Futtassa a következő parancsot az Azure.Identity NuGet-csomag telepítéséhez.

    Install-Package Azure.Identity
    

Adja hozzá a kódot az üzenetsorból érkező üzenetek fogadásához

Ebben a szakaszban kódot ad hozzá az üzenetek üzenetsorból való lekéréséhez.

  1. Az osztályon Program belül adja hozzá a következő kódot:

    using System.Threading.Tasks;
    using Azure.Identity;
    using Azure.Messaging.ServiceBus;
    
    // the client that owns the connection and can be used to create senders and receivers
    ServiceBusClient client;
    
    // the processor that reads and processes messages from the queue
    ServiceBusProcessor processor;
    
  2. Fűzze hozzá a következő metódusokat az Program osztály végéhez.

    // handle received messages
    async Task MessageHandler(ProcessMessageEventArgs args)
    {
        string body = args.Message.Body.ToString();
        Console.WriteLine($"Received: {body}");
    
        // complete the message. message is deleted from the queue. 
        await args.CompleteMessageAsync(args.Message);
    }
    
    // handle any errors when receiving messages
    Task ErrorHandler(ProcessErrorEventArgs args)
    {
        Console.WriteLine(args.Exception.ToString());
        return Task.CompletedTask;
    }
    
  3. Fűzze hozzá a következő kódot az Program osztály végéhez. A fontos lépéseket a következő szakaszban ismertetjük, a kód megjegyzéseiben pedig további információk találhatók.

    • Létrehoz egy ServiceBusClient objektumot az DefaultAzureCredential objektum használatával. DefaultAzureCredential Automatikusan felderíti és használja a Visual Studio-bejelentkezés hitelesítő adatait az Azure Service Buson való hitelesítéshez.
    • Meghívja a CreateProcessor metódust az ServiceBusClient objektumon, hogy létrehozhasson egy ServiceBusProcessor objektumot a megadott Service Bus-üzenetsorhoz.
    • A ServiceBusProcessor objektum ProcessMessageAsync és ProcessErrorAsync eseményeinek kezelőit adja meg.
    • Megkezdi az üzenetek feldolgozását az objektum StartProcessingAsyncServiceBusProcessor parancsának meghívásával.
    • Amikor a felhasználó lenyom egy billentyűt a feldolgozás befejezéséhez, meghívja a StopProcessingAsyncet az ServiceBusProcessor objektumon.

    Fontos

    Frissítse a kódrészlet helyőrző értékeit (<NAMESPACE-NAME> és <QUEUE-NAME>) a Service Bus-névtér és az üzenetsor nevével.

    // The Service Bus client types are safe to cache and use as a singleton for the lifetime
    // of the application, which is best practice when messages are being published or read
    // regularly.
    //
    // Set the transport type to AmqpWebSockets so that the ServiceBusClient uses port 443. 
    // If you use the default AmqpTcp, make sure that ports 5671 and 5672 are open.
    
    // TODO: Replace the <NAMESPACE-NAME> placeholder
    var clientOptions = new ServiceBusClientOptions()
    {
        TransportType = ServiceBusTransportType.AmqpWebSockets
    };
    client = new ServiceBusClient(
        "<NAMESPACE-NAME>.servicebus.windows.net",
        new DefaultAzureCredential(),
        clientOptions);
    
    // create a processor that we can use to process the messages
    // TODO: Replace the <QUEUE-NAME> placeholder
    processor = client.CreateProcessor("<QUEUE-NAME>", new ServiceBusProcessorOptions());
    
    try
    {
        // add handler to process messages
        processor.ProcessMessageAsync += MessageHandler;
    
        // add handler to process any errors
        processor.ProcessErrorAsync += ErrorHandler;
    
        // start processing 
        await processor.StartProcessingAsync();
    
        Console.WriteLine("Wait for a minute and then press any key to end the processing");
        Console.ReadKey();
    
        // stop processing 
        Console.WriteLine("\nStopping the receiver...");
        await processor.StopProcessingAsync();
        Console.WriteLine("Stopped receiving messages");
    }
    finally
    {
        // Calling DisposeAsync on client types is required to ensure that network
        // resources and other unmanaged objects are properly cleaned up.
        await processor.DisposeAsync();
        await client.DisposeAsync();
    }
    
  4. A befejezett Program osztálynak meg kell egyeznie a következő kóddal:

    using System.Threading.Tasks;
    using Azure.Messaging.ServiceBus;
    using Azure.Identity;
    
    // the client that owns the connection and can be used to create senders and receivers
    ServiceBusClient client;
    
    // the processor that reads and processes messages from the queue
    ServiceBusProcessor processor;
    
    // The Service Bus client types are safe to cache and use as a singleton for the lifetime
    // of the application, which is best practice when messages are being published or read
    // regularly.
    //
    // Set the transport type to AmqpWebSockets so that the ServiceBusClient uses port 443.
    // If you use the default AmqpTcp, make sure that ports 5671 and 5672 are open.
    
    // TODO: Replace the <NAMESPACE-NAME> and <QUEUE-NAME> placeholders
    var clientOptions = new ServiceBusClientOptions() 
    {
        TransportType = ServiceBusTransportType.AmqpWebSockets
    };
    client = new ServiceBusClient("<NAMESPACE-NAME>.servicebus.windows.net", 
        new DefaultAzureCredential(), clientOptions);
    
    // create a processor that we can use to process the messages
    // TODO: Replace the <QUEUE-NAME> placeholder
    processor = client.CreateProcessor("<QUEUE-NAME>", new ServiceBusProcessorOptions());
    
    try
    {
        // add handler to process messages
        processor.ProcessMessageAsync += MessageHandler;
    
        // add handler to process any errors
        processor.ProcessErrorAsync += ErrorHandler;
    
        // start processing 
        await processor.StartProcessingAsync();
    
        Console.WriteLine("Wait for a minute and then press any key to end the processing");
        Console.ReadKey();
    
        // stop processing 
        Console.WriteLine("\nStopping the receiver...");
        await processor.StopProcessingAsync();
        Console.WriteLine("Stopped receiving messages");
    }
    finally
    {
        // Calling DisposeAsync on client types is required to ensure that network
        // resources and other unmanaged objects are properly cleaned up.
        await processor.DisposeAsync();
        await client.DisposeAsync();
    }
    
    // handle received messages
    async Task MessageHandler(ProcessMessageEventArgs args)
    {
        string body = args.Message.Body.ToString();
        Console.WriteLine($"Received: {body}");
    
        // complete the message. message is deleted from the queue. 
        await args.CompleteMessageAsync(args.Message);
    }
    
    // handle any errors when receiving messages
    Task ErrorHandler(ProcessErrorEventArgs args)
    {
        Console.WriteLine(args.Exception.ToString());
        return Task.CompletedTask;
    }
    
  5. Hozza létre a projektet, és győződjön meg arról, hogy nincsenek hibák.

  6. Futtassa a fogadóalkalmazást. Látnia kell a kapott üzeneteket. Nyomja le a kívánt billentyűt a fogadó és az alkalmazás leállításához.

    Wait for a minute and then press any key to end the processing
    Received: Message 1
    Received: Message 2
    Received: Message 3
    
    Stopping the receiver...
    Stopped receiving messages
    
  7. Ellenőrizze újra a portált. Várjon néhány percet, és frissítse a lapot, ha nem látja 0 az aktív üzeneteket.

    • Az aktív üzenetek száma és az Aktuális méretértékek most 0.

    • Az alsó Metrikák szakaszban található Üzenetek diagramon láthatja, hogy három bejövő és három kimenő üzenet van az üzenetsorhoz.

      Screenshot showing active messages and size after receive.

Az erőforrások eltávolítása

Lépjen a Service Bus-névtérre az Azure Portalon, és az Azure Portalon a Törlés gombra kattintva törölje a névteret és a benne lévő üzenetsort.

Lásd még

Tekintse meg a következő dokumentációt és mintákat:

Következő lépések