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:
Service Bus-névtér létrehozása az Azure Portal használatával.
Service Bus-üzenetsor létrehozása az Azure Portal használatával.
Írjon egy .NET-konzolalkalmazást, hogy üzeneteket küldjön az üzenetsorba.
Í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:
Jelentkezzen be az Azure Portalra.
Lépjen a Minden szolgáltatás lapra.
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.
A Névtér létrehozása lap Alapszintű címkéjében kövesse az alábbi lépéseket:
Előfizetés esetén válassza ki azt az Azure-előfizetést, amelyben létre szeretné hozni a névteret.
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.
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ű.
A Hely területen válassza ki azt a régiót, amelyben a névteret üzemeltetni kell.
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.
Válassza a Véleményezés + létrehozás lehetőséget a lap alján.
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.
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.
Megjelenik a service bus-névtér kezdőlapja.
Üzenetsor létrehozása az Azure Portalon
A Service Bus Namespace lapon válassza az Üzenetsorok lehetőséget a bal oldali navigációs menüben.
Az Üzenetsorok lapon válassza az eszköztár + Üzenetsor lehetőséget.
Adja meg az üzenetsor nevét, és hagyja meg a többi értéket az alapértelmezett értékekkel.
Most válassza a Létrehozás lehetőséget.
Fontos
Ha még nem ismerkedik az Azure-tal, a Kapcsolati sztring lehetőséget könnyebben követheti. A Rövid útmutatóban a Kapcsolati sztring fülre kattintva megtekintheti a kapcsolati sztring használatára vonatkozó utasításokat. 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-rendszergazdai 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.
Ha nem nyitotta meg a Service Bus Namespace lapot az Azure Portalon, keresse meg a Service Bus-névteret a fő keresősávon vagy a bal oldali navigációs sávon.
Az áttekintési lapon válassza a Hozzáférés-vezérlés (IAM) lehetőséget a bal oldali menüben.
A Hozzáférés-vezérlés (IAM) lapon válassza a Szerepkör-hozzárendelések lapot.
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 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.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.
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.
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:
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.
Válassza a Bejelentkezés gombot a Visual Studio jobb felső sarkában.
Jelentkezzen be a korábban szerepkörrel hozzárendelt Microsoft Entra-fiókkal.
Ü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
A Visual Studióban válassza a Fájl –>Új –>Projekt menüt.
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.
A programozási nyelvhez válassza a C# lehetőséget.
Válassza a Konzol lehetőséget az alkalmazás típusához.
Válassza a Konzolalkalmazás lehetőséget az eredmények listájából.
Ezután válassza a Tovább gombot.
Adja meg a QueueSender nevet a projektnévhez, a ServiceBusQueueQuickStartot a megoldásnévhez, majd válassza a Tovább gombot.
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
Válassza az Eszközök>NuGet Csomagkezelő> Csomagkezelő konzol lehetőséget a menüből.
Futtassa a következő parancsot az Azure.Messaging.ServiceBus NuGet-csomag telepítéséhez.
Install-Package Azure.Messaging.ServiceBus
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
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.- 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 CreateSender metódust a ServiceBusClient objektumon egy ServiceBusSender-objektum létrehozásához az adott Service Bus-üzenetsorhoz.
- ServiceBusMessageBatch objektumot hoz létre a ServiceBusSender.CreateMessageBatchAsync metódussal.
- Üzenetek hozzáadása a köteghez a ServiceBusMessageBatch.TryAddMessage használatával.
- Az üzenetköteget a ServiceBusSender.SendMessagesAsync metódussal küldi el a Service Bus-üzenetsorba.
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();
- Létrehoz egy ServiceBusClient objektumot az
Hozza létre a projektet, és győződjön meg arról, hogy nincsenek hibák.
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.
Az Azure Portalon kövesse az alábbi lépéseket:
Lépjen a Service Bus-névtérre.
Az Áttekintés lapon válassza ki az üzenetsort az alsó-középső panelen.
Figyelje meg az Alapértékek szakaszban szereplő értékeket .
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
- 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.
- Válassza a Konzolalkalmazás lehetőséget, majd a Tovább gombot.
- Írja be a QueueReceiver nevet a projektnévhez, és válassza a Létrehozás lehetőséget.
- 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
Válassza az Eszközök>NuGet Csomagkezelő> Csomagkezelő konzol lehetőséget a menüből.
Válassza az Alapértelmezett projekthez tartozó QueueReceiver lehetőséget.
Futtassa a következő parancsot az Azure.Messaging.ServiceBus NuGet-csomag telepítéséhez.
Install-Package Azure.Messaging.ServiceBus
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.
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;
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; }
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 StartProcessingAsync
ServiceBusProcessor
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(); }
- Létrehoz egy ServiceBusClient objektumot az
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; }
Hozza létre a projektet, és győződjön meg arról, hogy nincsenek hibák.
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
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 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:
- Azure Service Bus ügyfélkódtár a .NET-hez – Readme
- Minták a GitHubon
- .NET API-referencia
- Az olyan magasabb szintű keretrendszerekkel kapcsolatos infrastruktúra-problémák absztrakciója, mint az NServiceBus