使用 .NET Framework 将事件发送到 Azure 事件中心

事件中心是一个服务,可用于处理来自连接设备和应用程序的大量事件数据(遥测)。 将数据采集到事件中心后,可以使用任何实时分析提供程序或存储群集来转换和存储数据。 这种大规模事件收集和处理功能是现代应用程序体系结构(包括物联网 (IoT))的重要组件。

本教程说明如何使用 Azure 门户创建事件中心, 并说明如何使用控制台应用程序(通过 .NET Framework 以 C# 编写)将事件发送到事件中心。 若要使用 .NET Framework 接收事件,请参阅使用 .NET Framework 接收事件一文,或者单击左侧目录中的相应接收语言。

若要完成本教程,需要具备以下先决条件:

创建事件中心命名空间和事件中心

第一步是使用 Azure 门户创建事件中心类型的命名空间,并获取应用程序与事件中心进行通信所需的管理凭据。 若要创建命名空间和事件中心,请按照本文中的步骤进行操作,然后继续执行本教程的以下步骤。

创建发送方控制台应用程序

在此部分中,将编写用于将事件发送到事件中心的 Windows 控制台应用。

  1. 在 Visual Studio 中,使用 控制台应用程序 项目模板创建一个新的 Visual C# 桌面应用项目。 将该项目命名为 Sender

  2. 在解决方案资源管理器中,右键单击“Sender”项目,并单击“为解决方案管理 NuGet 包”。
  3. 单击“浏览”选项卡,并搜索 WindowsAzure.ServiceBus。 单击“安装” 并接受使用条款。

    Visual Studio 下载、安装 Azure 服务总线库 NuGet 包并添加对它的引用。

  4. 在 Program.cs 文件顶部添加以下 using 语句:

    using System.Threading;
    using Microsoft.ServiceBus.Messaging;
    
  5. 将以下字段添加到 Program 类,并将占位符值分别替换为在上一节中创建的事件中心的名称和前面保存的命名空间级别连接字符串。

    static string eventHubName = "Your Event Hub name";
    static string connectionString = "namespace connection string";
    
  6. 将以下方法添加到 Program 类:

    static void SendingRandomMessages()
    {
        var eventHubClient = EventHubClient.CreateFromConnectionString(connectionString, eventHubName);
        while (true)
        {
            try
            {
                var message = Guid.NewGuid().ToString();
                Console.WriteLine("{0} > Sending message: {1}", DateTime.Now, message);
                eventHubClient.Send(new EventData(Encoding.UTF8.GetBytes(message)));
            }
            catch (Exception exception)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine("{0} > Exception: {1}", DateTime.Now, exception.Message);
                Console.ResetColor();
            }
    
            Thread.Sleep(200);
        }
    }
    

    此方法不断将事件发送到事件中心,延迟为 200 毫秒。

  7. 最后,在 Main 方法中添加以下行:

    Console.WriteLine("Press Ctrl-C to stop the sender process");
    Console.WriteLine("Press Enter to start now");
    Console.ReadLine();
    SendingRandomMessages();
    
  8. 运行程序,并确保没有任何错误。

祝贺! 现在已向事件中心发送消息。

后续步骤

现在已生成了一个可以创建事件中心以及发送数据的有效应用程序,接下来请继续学习以下方案: