Introduzione agli argomenti e alle sottoscrizioni di bus di servizio di Azure (.NET)

Questa guida introduttiva illustra come inviare messaggi a un argomento bus di servizio e ricevere messaggi da una sottoscrizione a tale argomento usando la libreria .NET Azure.Messaging.ServiceBus.

In questa guida introduttiva si eseguiranno i passaggi seguenti:

  1. Creare uno spazio dei nomi del bus di servizio usando il portale di Azure.
  2. Creare un argomento del bus di servizio usando il portale di Azure.
  3. Creare una sottoscrizione a tale argomento del bus di servizio usando il portale di Azure.
  4. Scrivere un'applicazione console .NET per inviare un set di messaggi all'argomento.
  5. Scrivere un'applicazione console .NET per ricevere tali messaggi dalla sottoscrizione.

Nota

Questa guida introduttiva fornisce istruzioni dettagliate per implementare un semplice scenario di invio di un batch di messaggi a un argomento bus di servizio e la ricezione di tali messaggi da una sottoscrizione dell'argomento. Per altri esempi su altri scenari e avanzati, vedere bus di servizio esempi .NET in GitHub.

  • Questa guida introduttiva illustra due modi per connettersi a bus di servizio di Azure: stringa di connessione e senza password. La prima opzione mostra come usare un stringa di connessione per connettersi a uno spazio dei nomi bus di servizio. La seconda opzione mostra come usare l'entità di sicurezza in Microsoft Entra ID e il controllo degli accessi in base al ruolo per connettersi a uno spazio dei nomi bus di servizio. Non è necessario preoccuparsi di avere stringa di connessione hardcoded nel codice o in un file di configurazione o in un'archiviazione sicura come Azure Key Vault. Se non si ha esperienza con Azure, è possibile trovare l'opzione stringa di connessione più semplice da seguire. È consigliabile usare l'opzione senza password in applicazioni e ambienti di produzione reali. Per altre informazioni, consultare Autenticazione e autorizzazione.

Prerequisiti

Se non si ha familiarità con il servizio, vedere bus di servizio panoramica prima di eseguire questa guida introduttiva.

  • Sottoscrizione di Azure. Per usare i servizi di Azure, tra cui bus di servizio di Azure, è necessaria una sottoscrizione. Se non si ha un account Azure esistente, è possibile iscriversi per ottenere una versione di valutazione gratuita.
  • Visual Studio 2022. L'applicazione di esempio usa nuove funzionalità introdotte in C# 10. È comunque possibile usare la libreria client bus di servizio con le versioni precedenti del linguaggio C#, ma la sintassi potrebbe variare. Per usare la sintassi più recente, è consigliabile installare .NET 6.0 o versione successiva e impostare la versione del linguaggio su latest. Se si usa Visual Studio, le versioni precedenti a Visual Studio 2022 non sono compatibili con gli strumenti necessari per compilare progetti C# 10.

Creare uno spazio dei nomi nel portale di Azure

Per iniziare a usare le entità di messaggistica del bus di servizio in Azure, prima di tutto è necessario creare uno spazio dei nomi con un nome univoco in Azure. Uno spazio dei nomi fornisce un contenitore di ambito per bus di servizio risorse (code, argomenti e così via) all'interno dell'applicazione.

Per creare uno spazio dei nomi:

  1. Accedere al portale di Azure.

  2. Passare alla pagina Tutti i servizi.

  3. Sulla barra di spostamento a sinistra selezionare Integrazione nell'elenco delle categorie, passare il puntatore del mouse su bus di servizio e quindi selezionare + il pulsante nel riquadro bus di servizio.

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

  4. Nel tag Informazioni di base della pagina Crea spazio dei nomi seguire questa procedura:

    1. Per Sottoscrizione scegliere una sottoscrizione di Azure in cui creare lo spazio dei nomi.

    2. Per Gruppo di risorse scegliere un gruppo di risorse esistente in cui risiederà lo spazio dei nomi oppure crearne uno nuovo.

    3. Immettere un nome per lo spazio dei nomi. Il nome dello spazio dei nomi deve rispettare le convenzioni di denominazione seguenti:

      • Il nome deve essere univoco in Azure. Verrà effettuato immediatamente un controllo sulla disponibilità del nome.
      • La lunghezza del nome è almeno 6 e al massimo 50 caratteri.
      • Il nome può contenere solo lettere, numeri, trattini "-".
      • Il nome deve iniziare con una lettera e terminare con una lettera o un numero.
      • Il nome non termina con "-sb" o "-mgmt".
    4. Per Localitàscegliere l'area in cui deve essere ospitato lo spazio dei nomi.

    5. Per Piano tariffario selezionare il piano tariffario (Basic, Standard o Premium) per lo spazio dei nomi. Per questa guida introduttiva selezionare Standard.

      Importante

      Se si vogliono usare argomenti e sottoscrizioni, scegliere Standard o Premium. Gli argomenti e le sottoscrizioni non sono supportati nel piano tariffario Basic.

      Se è stato selezionato il piano tariffario Premium, specificare il numero di unità di messaggistica. Il piano Premium fornisce l'isolamento delle risorse a livello di CPU e memoria in modo che ogni carico di lavoro venga eseguito in isolamento. Questo contenitore di risorse viene chiamato unità di messaggistica. Uno spazio dei nomi Premium ha almeno un'unità di messaggistica. È possibile selezionare 1, 2, 4, 8 o 16 unità di messaggistica per ogni spazio dei nomi bus di servizio Premium. Per altre informazioni, vedere Messaggistica Premium del bus di servizio.

    6. Selezionare Rivedi e crea nella parte inferiore della pagina.

      Image showing the Create a namespace page

    7. Nella pagina Rivedi e crea rivedere le impostazioni e selezionare Crea.

  5. Al termine della distribuzione della risorsa, selezionare Vai alla risorsa nella pagina di distribuzione.

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

  6. Viene visualizzata la home page dello spazio dei nomi del bus di servizio.

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

Creare un argomento usando il portale di Azure

  1. Nella pagina Spazio dei nomi del bus di servizio scegliere Argomenti dal menu a sinistra.

  2. Selezionare + Argomento sulla barra degli strumenti.

  3. Immettere un nome per l'argomento. Lasciare invariati i valori predefiniti delle altre opzioni.

  4. Seleziona Crea.

    Image showing the Create topic page.

Creare una sottoscrizione all'argomento

  1. Selezionare l'argomento creato nella sezione precedente.

    Image showing the selection of topic from the list of topics.

  2. Nella pagina argomento bus di servizio selezionare + Sottoscrizione sulla barra degli strumenti.

    Image showing the Add subscription button.

  3. Nella pagina Crea sottoscrizione seguire questa procedura:

    1. Immettere S1 per nome della sottoscrizione.

    2. Immettere 3 per Numero massimo di recapito.

    3. Selezionare quindi Crea per creare la sottoscrizione.

      Image showing the Create subscription page.

Autenticare l'app in Azure

Questa guida introduttiva illustra due modi per connettersi a bus di servizio di Azure: senza password e stringa di connessione.

La prima opzione mostra come usare l'entità di sicurezza in Microsoft Entra ID e il controllo degli accessi in base al ruolo per connettersi a uno spazio dei nomi bus di servizio. Non è necessario preoccuparsi di avere stringa di connessione hardcoded nel codice o in un file di configurazione o in un'archiviazione sicura come Azure Key Vault.

La seconda opzione mostra come usare un stringa di connessione per connettersi a uno spazio dei nomi bus di servizio. Se non si ha esperienza con Azure, è possibile trovare l'opzione stringa di connessione più semplice da seguire. È consigliabile usare l'opzione senza password in applicazioni e ambienti di produzione reali. Per altre informazioni, consultare Autenticazione e autorizzazione. Per altre informazioni sull'autenticazione senza password, vedere la pagina di panoramica.

Assegnare ruoli all'utente di Microsoft Entra

Quando si sviluppa in locale, assicurarsi che l'account utente che si connette a bus di servizio di Azure disponga delle autorizzazioni corrette. Per inviare e ricevere messaggi, è necessario il ruolo di proprietario dei dati bus di servizio di Azure. Per assegnare a se stessi questo ruolo, è necessario il ruolo Accesso utente Amministrazione istrator o un altro ruolo che include l'azioneMicrosoft.Authorization/roleAssignments/write. È possibile assegnare ruoli controllo degli accessi in base al ruolo di Azure a un utente usando il portale di Azure, l'interfaccia della riga di comando di Azure o Azure PowerShell. Altre informazioni sugli ambiti disponibili per le assegnazioni di ruolo nella pagina di panoramica dell'ambito.

L'esempio seguente assegna il Azure Service Bus Data Owner ruolo all'account utente, che fornisce l'accesso completo alle risorse di bus di servizio di Azure. In uno scenario reale, seguire il principio dei privilegi minimi per concedere agli utenti solo le autorizzazioni minime necessarie per un ambiente di produzione più sicuro.

Ruoli predefiniti di Azure per bus di servizio di Azure

Per bus di servizio di Azure, la gestione degli spazi dei nomi e di tutte le risorse correlate tramite il portale di Azure e l'API di gestione delle risorse di Azure è già protetta usando il modello di controllo degli accessi in base al ruolo di Azure. Azure offre i ruoli predefiniti di Azure seguenti per autorizzare l'accesso a uno spazio dei nomi bus di servizio:

  • bus di servizio di Azure Proprietario dati: consente l'accesso ai dati allo spazio dei nomi bus di servizio e alle relative entità (code, argomenti, sottoscrizioni e filtri). Un membro di questo ruolo può inviare e ricevere messaggi da code o argomenti/sottoscrizioni.
  • bus di servizio di Azure Mittente dati: usare questo ruolo per concedere all'invio l'accesso allo spazio dei nomi bus di servizio e alle relative entità.
  • bus di servizio di Azure Ricevitore dati: usare questo ruolo per concedere l'accesso di ricezione allo spazio dei nomi bus di servizio e alle relative entità.

Per creare un ruolo personalizzato, vedere Diritti necessari per le operazioni di bus di servizio.

Aggiungere l'utente di Microsoft Entra al ruolo proprietario bus di servizio di Azure

Aggiungere il nome utente di Microsoft Entra al ruolo proprietario dati bus di servizio di Azure a livello di spazio dei nomi bus di servizio. Consentirà a un'app in esecuzione nel contesto dell'account utente di inviare messaggi a una coda o a un argomento e di ricevere messaggi da una coda o da una sottoscrizione di un argomento.

Importante

Nella maggior parte dei casi, la propagazione dell'assegnazione di ruolo in Azure richiederà un minuto o due. In rari casi, possono essere necessari fino a otto minuti. Se si ricevono errori di autenticazione quando si esegue il codice per la prima volta, attendere alcuni istanti e riprovare.

  1. Se la pagina spazio dei nomi bus di servizio non è aperta nella portale di Azure, individuare lo spazio dei nomi bus di servizio usando la barra di ricerca principale o lo spostamento a sinistra.

  2. Nella pagina di panoramica selezionare Controllo di accesso (IAM) dal menu a sinistra.

  3. Nella pagina Controllo di accesso (IAM) selezionare la scheda Assegnazioni di ruolo.

  4. Selezionare + Aggiungi nel menu in alto e quindi Aggiungi assegnazione di ruolo nel menu a discesa risultante.

    A screenshot showing how to assign a role.

  5. Usare la casella di ricerca per filtrare i risultati in base al ruolo desiderato. Per questo esempio, cercare Azure Service Bus Data Owner e selezionare il risultato corrispondente. Scegliere quindi Avanti.

  6. In Assegna accesso a selezionare Utente, gruppo o entità servizio e quindi scegliere + Seleziona membri.

  7. Nella finestra di dialogo cercare il nome utente di Microsoft Entra (in genere l'indirizzo di posta elettronica user@domain ) e quindi scegliere Seleziona nella parte inferiore della finestra di dialogo.

  8. Selezionare Rivedi e assegna per passare alla pagina finale e quindi rivedi e assegna per completare il processo.

Avviare Visual Studio e accedere ad Azure

È possibile autorizzare l'accesso allo spazio dei nomi del bus di servizio seguendo questa procedura:

  1. Avviare Visual Studio. Se viene visualizzata la finestra Attività iniziali , selezionare il collegamento Continua senza codice nel riquadro destro.

  2. Selezionare il pulsante Accedi in alto a destra di Visual Studio.

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

  3. Accedere usando l'account Microsoft Entra a cui è stato assegnato un ruolo in precedenza.

    Screenshot showing the account selection.

Inviare messaggi all'argomento

Questa sezione illustra come creare un'applicazione console .NET per inviare messaggi a un argomento bus di servizio.

Nota

Questa guida introduttiva fornisce istruzioni dettagliate per implementare un semplice scenario di invio di un batch di messaggi a un argomento bus di servizio e la ricezione di tali messaggi da una sottoscrizione dell'argomento. Per altri esempi su altri scenari e avanzati, vedere bus di servizio esempi .NET in GitHub.

Creare un'applicazione console

  1. In Visual Studio selezionare File -Nuovo ->Menu Progetto>.
  2. Nella finestra di dialogo Crea un nuovo progetto seguire questa procedura: Se non viene visualizzata questa finestra di dialogo, selezionare File dal menu, selezionare Nuovo e quindi Selezionare Progetto.
    1. Selezionare C# come linguaggio di programmazione.

    2. Selezionare Console come tipo di applicazione.

    3. Selezionare App console nell'elenco dei risultati.

    4. Quindi seleziona Avanti.

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

  3. Immettere TopicSender come nome del progetto, ServiceBusTopicQuickStart per il nome della soluzione e quindi selezionare Avanti.
  4. Nella pagina Informazioni aggiuntive selezionare Crea per creare la soluzione e il progetto.

Aggiungere i pacchetti NuGet al progetto

  1. Scegliere Strumenti>Gestione pacchetti NuGet>Console di Gestione pacchetti dal menu.

  2. Eseguire il comando seguente per installare il pacchetto NuGet Azure.Messaging.ServiceBus .

    Install-Package Azure.Messaging.ServiceBus
    
  3. Eseguire il comando seguente per installare il pacchetto NuGet Azure.Identity .

    Install-Package Azure.Identity
    

Aggiungere il codice per inviare messaggi all'argomento

  1. Sostituire il contenuto di Program.cs con il codice seguente. I passaggi importanti sono descritti in questa sezione, con informazioni aggiuntive nei commenti del codice.

    1. Crea un oggetto ServiceBusClient utilizzando l'oggetto DefaultAzureCredential . DefaultAzureCredentialindividua e usa automaticamente le credenziali dell'accesso di Visual Studio per eseguire l'autenticazione per bus di servizio di Azure.
    2. Richiama il metodo CreateSender sull'oggetto ServiceBusClient per creare un oggetto ServiceBusSender per l'argomento bus di servizio specifico.
    3. Crea un oggetto ServiceBusMessageBatch utilizzando ServiceBusSender.CreateMessageBatchAsync.
    4. Aggiungere messaggi al batch usando ServiceBusMessageBatch.TryAddMessage.
    5. Invia il batch di messaggi all'argomento bus di servizio usando il metodo ServiceBusSender.SendMessagesAsync.

    Importante

    Aggiornare i valori segnaposto (<NAMESPACE-NAME> e <TOPIC-NAME>) nel frammento di codice con i nomi dello spazio dei nomi e dell'argomento bus di servizio.

    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();
    
  2. Compilare il progetto e assicurarsi che non siano presenti errori.

  3. Eseguire il programma e attendere il messaggio di conferma.

    A batch of 3 messages has been published to the topic
    

    Importante

    Nella maggior parte dei casi, la propagazione dell'assegnazione di ruolo in Azure richiederà un minuto o due. In rari casi, potrebbero essere necessari fino a otto minuti. Se si ricevono errori di autenticazione quando si esegue il codice per la prima volta, attendere alcuni istanti e riprovare.

  4. Nel portale di Azure seguire questa procedura:

    1. Passare allo spazio dei nomi del bus di servizio.

    2. Nella pagina Panoramica passare alla scheda Argomenti nel riquadro centrale inferiore e selezionare l'argomento del bus di servizio. Nell'esempio seguente è mytopic.

      Select topic

    3. Nella pagina bus di servizio argomento, nel grafico Messaggi nella sezione Metriche inferiore è possibile vedere che sono presenti tre messaggi in arrivo per l'argomento. Se il valore non viene visualizzato, attendere alcuni minuti e aggiornare la pagina per visualizzare il grafico aggiornato.

      Messages sent to the topic

    4. Selezionare la sottoscrizione nel riquadro in basso. Nell'esempio seguente è S1. Nella pagina sottoscrizione di bus di servizio viene visualizzato il conteggio dei messaggi Attivi come 3. La sottoscrizione ha ricevuto i tre messaggi inviati all'argomento, ma non è ancora stato selezionato alcun destinatario.

      Messages received at the subscription

Ricevere messaggi da una sottoscrizione

In questa sezione viene creata un'applicazione console .NET che riceve messaggi dalla sottoscrizione all'argomento bus di servizio.

Nota

Questa guida introduttiva fornisce istruzioni dettagliate per implementare un semplice scenario di invio di un batch di messaggi a un argomento bus di servizio e la ricezione di tali messaggi da una sottoscrizione dell'argomento. Per altri esempi su altri scenari e avanzati, vedere bus di servizio esempi .NET in GitHub.

Creare un progetto per l'app ricevente

  1. Nella finestra Esplora soluzioni fare clic con il pulsante destro del mouse sulla soluzione ServiceBusTopicQuickStart, scegliere Aggiungi e selezionare Nuovo progetto.
  2. Selezionare Applicazione console e selezionare Avanti.
  3. Immettere SubscriptionReceiver come Nome progetto e selezionare Avanti.
  4. Nella pagina Informazioni aggiuntive selezionare Crea.
  5. Nella finestra Esplora soluzioni fare clic con il pulsante destro del mouse su SubscriptionReceiver e scegliere Imposta come progetto di avvio.

Aggiungere i pacchetti NuGet al progetto

  1. Scegliere Strumenti>Gestione pacchetti NuGet>Console di Gestione pacchetti dal menu.

  2. Selezionare SubscriptionReceiver per l'elenco a discesa Progetto predefinito .

  3. Eseguire il comando seguente per installare il pacchetto NuGet Azure.Messaging.ServiceBus .

    Install-Package Azure.Messaging.ServiceBus
    
  4. Eseguire il comando seguente per installare il pacchetto NuGet Azure.Identity .

    Install-Package Azure.Identity
    

Aggiungere il codice per ricevere messaggi dalla sottoscrizione

In questa sezione si aggiunge codice per recuperare i messaggi dalla sottoscrizione.

  1. Sostituire il contenuto esistente di Program.cs con le proprietà e i metodi seguenti:

    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;
    }
    
  2. Aggiungere il codice seguente alla fine di Program.cs.

    Importante

    Aggiornare i valori segnaposto (<NAMESPACE-NAME>, <TOPIC-NAME>, <SUBSCRIPTION-NAME>) nel frammento di codice con i nomi dello spazio dei nomi, dell'argomento e della sottoscrizione bus di servizio.

    Per altre informazioni, vedere commenti di codice.

    // 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();
    }
    
  3. Di seguito è riportato l'aspetto Program.cs seguente:

    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();
    }
    
  4. Compilare il progetto e assicurarsi che non siano presenti errori.

  5. Eseguire l'applicazione ricevente. Verranno visualizzati i messaggi ricevuti. Premere un tasto qualsiasi per arrestare il destinatario e l'applicazione.

    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
    
  6. Controllare di nuovo il portale.

    • Nella pagina argomento bus di servizio, nel grafico Messaggi vengono visualizzati tre messaggi in arrivo e tre messaggi in uscita. Se questi valori non vengono visualizzati, attendere alcuni minuti e aggiornare la pagina per vedere il grafico aggiornato.

      Messages sent and received

    • Nella pagina Sottoscrizione del bus di servizio il valore visualizzato per Numero di messaggi attivi è zero. Il motivo è che il destinatario ha ricevuto i messaggi inviati da questa sottoscrizione e li ha completati.

      Active message count at the subscription at the end

Passaggi successivi

Vedere la documentazione e gli esempi seguenti: