Ismerkedés az Azure Service Bus-témakörökkel és -előfizetésekkel (.NET)
Ez a rövid útmutató bemutatja, hogyan küldhet üzeneteket egy Service Bus-témakörnek, és hogyan fogadhat üzeneteket egy előfizetésből az adott témakörbe az Azure.Messaging.ServiceBus .NET-kódtár használatával.
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-üzenettéma létrehozása az Azure Portal használatával.
- Service Bus-előfizetés létrehozása az üzenettémához az Azure Portal használatával.
- Írjon egy .NET-konzolalkalmazást, hogy üzeneteket küldjön a témakörnek.
- Írjon egy .NET-konzolalkalmazást az előfizetésből érkező üzenetek fogadásához.
Feljegyzés
Ez a rövid útmutató lépésről lépésre útmutatást nyújt egy egyszerű forgatókönyv megvalósításához, amely egy üzenetköteget küld egy Service Bus-témakörbe, és fogadja ezeket az üzeneteket a témakör előfizetéséből. További példákat a GitHub Service Bus .NET-mintáiban talál.
- Ez a rövid útmutató az Azure Service Bushoz való csatlakozás két módját mutatja be: kapcsolati sztring és jelszó nélküli. Az első lehetőség bemutatja, hogyan csatlakozhat egy Service Bus-névtérhez egy kapcsolati sztring. A második 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, konfigurációs fájlban vagy biztonságos tárolóban, például az Azure Key Vaultban van egy kemény kóddal rendelkező kapcsolati sztring. Ha még csak most 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.
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.
Üzenettéma létrehozása az Azure Portal használatával
A Service Bus Névtér lapján válassza a bal oldali menü Témakörök elemét.
Válassza a + Témakör lehetőséget az eszköztáron.
Adja meg a témakör nevét. A többi beállítást hagyja az alapértelmezett értékükön.
Válassza a Létrehozás lehetőséget.
Előfizetés létrehozása az üzenettémához
Válassza ki az előző szakaszban létrehozott témakört .
A Service Bus-témakör lapján válassza az eszköztár + Előfizetés lehetőséget.
Az Előfizetés létrehozása lapon kövesse az alábbi lépéseket:
Írja be az S1 nevet az előfizetéshez.
Adja meg a 3 értéket a maximális szállítási számhoz.
Ezután válassza a Létrehozás lehetőséget az előfizetés létrehozásához.
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.
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.
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.
Üzenet küldése az üzenettémához
Ez a szakasz bemutatja, hogyan hozhat létre .NET-konzolalkalmazást, amely üzeneteket küld egy Service Bus-témakörbe.
Feljegyzés
Ez a rövid útmutató lépésről lépésre útmutatást nyújt egy egyszerű forgatókönyv megvalósításához, amely egy üzenetköteget küld egy Service Bus-témakörbe, és fogadja ezeket az üzeneteket a témakör előfizetéséből. 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 projektnév TopicSender elemét, a Megoldás neve ServiceBusTopicQuickStart értéket, 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
Üzenetküldési kód hozzáadása a témakörhöz
Cserélje le a Program.cs tartalmát a következő kódra. A fontos lépéseket ebben a 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 az
ServiceBusClient
objektumon, hogy létrehozhasson egy ServiceBusSender objektumot az adott Service Bus-témakörhöz. - ServiceBusMessageBatch objektumot hoz létre a ServiceBusSender.CreateMessageBatchAsync használatával.
- Üzenetek hozzáadása a köteghez a ServiceBusMessageBatch.TryAddMessage használatával.
- Az üzenetek kötegét a Service Bus-témakörbe küldi a ServiceBusSender.SendMessagesAsync metódussal.
Fontos
Frissítse a helyőrző értékeket (
<NAMESPACE-NAME>
és<TOPIC-NAME>
) a kódrészletben a Service Bus-névtér és a témakör nevével.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 sender used to publish messages to the topic ServiceBusSender sender; // number of messages to be sent to the topic 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. //TODO: Replace the "<NAMESPACE-NAME>" and "<TOPIC-NAME>" placeholders. client = new ServiceBusClient( "<NAMESPACE-NAME>.servicebus.windows.net", new DefaultAzureCredential()); sender = client.CreateSender("<TOPIC-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 topic await sender.SendMessagesAsync(messageBatch); Console.WriteLine($"A batch of {numOfMessages} messages has been published to the topic."); } 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 topic
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, az alsó-középső panelen váltson a Témakörök lapra, és válassza ki a Service Bus-témakört. Az alábbi példában ez a következő
mytopic
.A Service Bus-témakör lap Üzenetek diagramjának alsó Metrikák szakaszában láthatja, hogy három bejövő üzenet van a témakörhöz. Ha nem látja az értéket, várjon néhány percet, és frissítse a lapot a frissített diagram megtekintéséhez.
Válassza ki az előfizetést az alsó panelen. Az alábbi példában ez az S1. A Service Bus-előfizetés lapon az aktív üzenet 3-as számként jelenik meg. Az előfizetés megkapta a témakörnek küldött három üzenetet, de még nem vette fel őket a címzett.
Üzenetek fogadása előfizetésből
Ebben a szakaszban egy .NET-konzolalkalmazást hoz létre, amely üzeneteket fogad az előfizetésből a Service Bus-témakörbe.
Feljegyzés
Ez a rövid útmutató lépésről lépésre útmutatást nyújt egy egyszerű forgatókönyv megvalósításához, amely egy üzenetköteget küld egy Service Bus-témakörbe, és fogadja ezeket az üzeneteket a témakör előfizetéséből. 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 ServiceBusTopicQuickStart 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 SubscriptionReceiver nevet a projektnévhez, és válassza a Tovább gombot.
- A További információ lapon válassza a Létrehozás lehetőséget.
- A Megoldáskezelő ablakban kattintson a jobb gombbal az SubscriptionReceiver 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 a SubscriptionReceiver lehetőséget az Alapértelmezett projekt legördülő listához.
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
Kód hozzáadása az előfizetésből érkező üzenetek fogadásához
Ebben a szakaszban kódot ad hozzá az előfizetésből érkező üzenetek lekéréséhez.
Cserélje le a meglévő tartalmat
Program.cs
a következő tulajdonságokra és metódusokra: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 subscription ServiceBusProcessor processor; // handle received messages async Task MessageHandler(ProcessMessageEventArgs args) { string body = args.Message.Body.ToString(); Console.WriteLine($"Received: {body} from subscription."); // complete the message. messages is deleted from the subscription. 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 a végéhez
Program.cs
.- 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-témakörhöz. - Megadja az objektum ProcessMessageAsync és ProcessErrorAsync eseményeinek kezelőit
ServiceBusProcessor
. - 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>
,<TOPIC-NAME>
,<SUBSCRIPTION-NAME>
) a Service Bus-névtér, a témakör és az előfizetés nevével.További információkért lásd a kód megjegyzéseit.
// 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. // // Create the clients that we'll use for sending and processing messages. // TODO: Replace the <NAMESPACE-NAME> placeholder client = new ServiceBusClient( "<NAMESPACE-NAME>.servicebus.windows.net", new DefaultAzureCredential()); // create a processor that we can use to process the messages // TODO: Replace the <TOPIC-NAME> and <SUBSCRIPTION-NAME> placeholders processor = client.CreateProcessor("<TOPIC-NAME>", "<SUBSCRIPTION-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 következőképpen kell kinéznie
Program.cs
:using System; 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 subscription ServiceBusProcessor processor; // handle received messages async Task MessageHandler(ProcessMessageEventArgs args) { string body = args.Message.Body.ToString(); Console.WriteLine($"Received: {body} from subscription."); // complete the message. messages is deleted from the subscription. await args.CompleteMessageAsync(args.Message); } // handle any errors when receiving messages Task ErrorHandler(ProcessErrorEventArgs args) { Console.WriteLine(args.Exception.ToString()); return Task.CompletedTask; } // 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. // // Create the clients that we'll use for sending and processing messages. // TODO: Replace the <NAMESPACE-NAME> placeholder client = new ServiceBusClient( "<NAMESPACE-NAME>.servicebus.windows.net", new DefaultAzureCredential()); // create a processor that we can use to process the messages // TODO: Replace the <TOPIC-NAME> and <SUBSCRIPTION-NAME> placeholders processor = client.CreateProcessor("<TOPIC-NAME>", "<SUBSCRIPTION-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(); }
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 from subscription: S1 Received: Message 2 from subscription: S1 Received: Message 3 from subscription: S1 Stopping the receiver... Stopped receiving messages
Ellenőrizze újra a portált.
A Service Bus-témakör lap Üzenetek diagramján három bejövő és három kimenő üzenet jelenik meg. Ha nem látja ezeket a számokat, várjon néhány percet, és frissítse a lapot a frissített diagram megtekintéséhez.
A Service Bus-előfizetés lapon az Aktív üzenet nullának számít. Ennek az az oka, hogy egy fogadó üzeneteket kapott az előfizetéstől, és befejezte az üzeneteket.
Következő lépések
Tekintse meg a következő dokumentációt és mintákat:
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: