Guida introduttiva all'invio di messaggi a Hub eventi di Azure in .NET StandardGet started sending messages to Azure Event Hubs in .NET Standard

Nota

Questo esempio è disponibile in GitHub.This sample is available on GitHub.

Questa esercitazione illustra come scrivere un'applicazione console .NET Core che invii un set di messaggi a un hub eventi.This tutorial shows how to write a .NET Core console application that sends a set of messages to an event hub. È possibile eseguire la soluzione GitHub così com'è, sostituendo le stringhe EhConnectionString e EhEntityPath con i valori dell'hub eventi.You can run the GitHub solution as-is, replacing the EhConnectionString and EhEntityPath strings with your event hub values. In alternativa, è possibile seguire la procedura illustrata in questa esercitazione per creare una soluzione propria.Or you can follow the steps in this tutorial to create your own.

PrerequisitiPrerequisites

Per inviare messaggi a un hub eventi, viene scritta un'applicazione console C# in Visual Studio.To send messages to an event hub, we will use Visual Studio to write a C# console application.

Creare uno spazio dei nomi di Hub eventi e un hub eventiCreate an Event Hubs namespace and an event hub

Il primo passaggio consiste nell'usare il portale di Azure per creare uno spazio dei nomi per il tipo Hub eventi e ottenere le credenziali di gestione richieste dall'applicazione per comunicare con l'hub eventi.The first step is to use the Azure portal to create a namespace for the event hub type, and obtain the management credentials that your application needs to communicate with the event hub. Per creare uno spazio dei nomi e un hub eventi, seguire la procedura descritta in questo articolo e procedere con i passaggi seguenti.To create a namespace and an event hub, follow the procedure in this article, and then proceed with the following steps.

Creare un'applicazione consoleCreate a console application

Avviare Visual Studio.Start Visual Studio. Scegliere Nuovo dal menu File e quindi fare clic su Progetto.From the File menu, click New, and then click Project. Creare un'applicazione console di .NET Core.Create a .NET Core console application.

Nuovo progetto

Aggiungere il pacchetto NuGet di Hub eventiAdd the Event Hubs NuGet package

Aggiungere il pacchetto NuGet della raccolta .NET standard Microsoft.Azure.EventHubs al progetto eseguendo i passaggi descritti di seguito:Add the Microsoft.Azure.EventHubs .NET Standard library NuGet package to your project by following these steps:

  1. Fare clic con il pulsante destro del mouse sul progetto appena creato e scegliere Gestisci pacchetti NuGet.Right-click the newly created project and select Manage NuGet Packages.
  2. Fare clic sulla scheda Sfoglia, quindi cercare "Microsoft.Azure.EventHubs" e selezionare il pacchetto Microsoft.Azure.EventHubs.Click the Browse tab, then search for "Microsoft.Azure.EventHubs" and select the Microsoft.Azure.EventHubs package. Fare clic su Installa per completare l'installazione, quindi chiudere questa finestra di dialogo.Click Install to complete the installation, then close this dialog box.

Scrivere il codice per inviare messaggi all'hub eventiWrite some code to send messages to the event hub

  1. Aggiungere le istruzioni using seguenti all'inizio del file Program.cs.Add the following using statements to the top of the Program.cs file.

    using Microsoft.Azure.EventHubs;
    using System.Text;
    using System.Threading.Tasks;
    
  2. Aggiungere le costanti per la classe Program per la stringa di connessione e il percorso dell'entità di Hub eventi (nome dell'hub eventi singolo).Add constants to the Program class for the Event Hubs connection string and entity path (individual event hub name). Sostituire i segnaposto tra parentesi con i valori specifici ottenuti durante la creazione dell'hub eventi.Replace the placeholders in brackets with the proper values that were obtained when creating the event hub. Assicurarsi che {Event Hubs connection string} sia la stringa di connessione a livello di spazio dei nomi e non la stringa dell'hub eventi.Make sure that the {Event Hubs connection string} is the namespace-level connection string, and not the event hub string.

    private static EventHubClient eventHubClient;
    private const string EhConnectionString = "{Event Hubs connection string}";
    private const string EhEntityPath = "{Event Hub path/name}";
    
  3. Aggiungere alla classe Program un nuovo metodo denominato MainAsync come da esempio seguente:Add a new method named MainAsync to the Program class, as follows:

    private static async Task MainAsync(string[] args)
    {
        // Creates an EventHubsConnectionStringBuilder object from the connection string, and sets the EntityPath.
        // Typically, the connection string should have the entity path in it, but for the sake of this simple scenario
        // we are using the connection string from the namespace.
        var connectionStringBuilder = new EventHubsConnectionStringBuilder(EhConnectionString)
        {
            EntityPath = EhEntityPath
        };
    
        eventHubClient = EventHubClient.CreateFromConnectionString(connectionStringBuilder.ToString());
    
        await SendMessagesToEventHub(100);
    
        await eventHubClient.CloseAsync();
    
        Console.WriteLine("Press ENTER to exit.");
        Console.ReadLine();
    }
    
  4. Aggiungere alla classe Program un nuovo metodo denominato SendMessagesToEventHub come da esempio seguente:Add a new method named SendMessagesToEventHub to the Program class, as follows:

    // Creates an event hub client and sends 100 messages to the event hub.
    private static async Task SendMessagesToEventHub(int numMessagesToSend)
    {
        for (var i = 0; i < numMessagesToSend; i++)
        {
            try
            {
                var message = $"Message {i}";
                Console.WriteLine($"Sending message: {message}");
                await eventHubClient.SendAsync(new EventData(Encoding.UTF8.GetBytes(message)));
            }
            catch (Exception exception)
            {
                Console.WriteLine($"{DateTime.Now} > Exception: {exception.Message}");
            }
    
            await Task.Delay(10);
        }
    
        Console.WriteLine($"{numMessagesToSend} messages sent.");
    }
    
  5. Aggiungere il codice seguente al metodo Main nella classe Program.Add the following code to the Main method in the Program class.

    MainAsync(args).GetAwaiter().GetResult();
    

    Ecco l'aspetto che avrà il file Program.cs.Here is what your Program.cs should look like.

    namespace SampleSender
    {
        using System;
        using System.Text;
        using System.Threading.Tasks;
        using Microsoft.Azure.EventHubs;
    
        public class Program
        {
            private static EventHubClient eventHubClient;
            private const string EhConnectionString = "{Event Hubs connection string}";
            private const string EhEntityPath = "{Event Hub path/name}";
    
            public static void Main(string[] args)
            {
                MainAsync(args).GetAwaiter().GetResult();
            }
    
            private static async Task MainAsync(string[] args)
            {
                // Creates an EventHubsConnectionStringBuilder object from the connection string, and sets the EntityPath.
                // Typically, the connection string should have the entity path in it, but for the sake of this simple scenario
                // we are using the connection string from the namespace.
                var connectionStringBuilder = new EventHubsConnectionStringBuilder(EhConnectionString)
                {
                    EntityPath = EhEntityPath
                };
    
                eventHubClient = EventHubClient.CreateFromConnectionString(connectionStringBuilder.ToString());
    
                await SendMessagesToEventHub(100);
    
                await eventHubClient.CloseAsync();
    
                Console.WriteLine("Press ENTER to exit.");
                Console.ReadLine();
            }
    
            // Creates an event hub client and sends 100 messages to the event hub.
            private static async Task SendMessagesToEventHub(int numMessagesToSend)
            {
                for (var i = 0; i < numMessagesToSend; i++)
                {
                    try
                    {
                        var message = $"Message {i}";
                        Console.WriteLine($"Sending message: {message}");
                        await eventHubClient.SendAsync(new EventData(Encoding.UTF8.GetBytes(message)));
                    }
                    catch (Exception exception)
                    {
                        Console.WriteLine($"{DateTime.Now} > Exception: {exception.Message}");
                    }
    
                    await Task.Delay(10);
                }
    
                Console.WriteLine($"{numMessagesToSend} messages sent.");
            }
        }
    }
    
  6. Eseguire il programma e assicurarsi che non siano presenti errori.Run the program, and ensure that there are no errors.

Congratulazioni.Congratulations! Sono stati inviati messaggi a un hub eventi.You have now sent messages to an event hub.

Passaggi successiviNext steps

Per ulteriori informazioni su Hub eventi visitare i collegamenti seguenti:You can learn more about Event Hubs by visiting the following links: