c# - .net core Web应用程序并从azure事件中心读取数据

标签 c# azure web-applications .net-core azure-eventhub

我正在尝试从 Azure 事件中心接收数据并使用 signalR 在 .NET core 2.1 Web 应用程序上显示它们。我已经按照这个教程https://learn.microsoft.com/en-us/azure/event-hubs/event-hubs-dotnet-standard-getstarted-receive-eph一切都可以在 .net core 控制台应用程序上运行。但我一直坚持如何在网络应用程序中实现这一点。我对网络应用程序还是新手,所以也许我的问题很微不足道。 这是主要的网络应用程序代码

        public static void Main(string[] args)
    {

        CreateWebHostBuilder(args).Build().Run();
    }

    public static IWebHostBuilder CreateWebHostBuilder(string[] args) =>
        WebHost.CreateDefaultBuilder(args)
            .UseStartup<Startup>();

教程中负责部署事件处理器的部分代码位于 MainAsync(string[] args)

        private static async Task MainAsync(string[] args)
    {
        Console.WriteLine("Registering EventProcessor...");
        var eventProcessorHost = new EventProcessorHost(
            EventHubName,
            PartitionReceiver.DefaultConsumerGroupName,
            EventHubConnectionString,
            StorageConnectionString,
            StorageContainerName);

        // Registers the Event Processor Host and starts receiving messages
        await eventProcessorHost.RegisterEventProcessorAsync<SimpleEventProcessor>();

        Console.WriteLine("Receiving. Press ENTER to stop worker.");
        Console.ReadLine();

        // Disposes of the Event Processor Host
        await eventProcessorHost.UnregisterEventProcessorAsync();
    }

这是我的问题。如何运行 MainAsync 并运行 Web 应用程序?如果我做这样的事情

        public static void Main(string[] args)
    {
        MainAsync(args);
        CreateWebHostBuilder(args).Build().Run();

    }

一切都会编译,但当事件中心中有新事件时什么也没有发生,我不知道为什么以及如何解决这个问题

最佳答案

Web 应用程序的情况有所不同。有几种方法可以做到这一点。

1) 如果您在 Azure 应用服务中托管应用程序,则可以创建一个 Web 作业。

2) 您利用 azure 事件网格。您需要在 .Net Core 中创建将接收事件的 Web Hook ( Controller )。事件中心将事件发送到 Web Hook (事件中心使用事件网格来执行此操作)。您在事件中心创建 Web Hook 并在那里提供 Controller URL。

3)您的应用程序订阅事件。我还没有看到具体的例子,但这个例子可能会给你提示。 https://learn.microsoft.com/en-us/dotnet/standard/microservices-architecture/multi-container-microservice-net-applications/subscribe-events

关于c# - .net core Web应用程序并从azure事件中心读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53840785/

相关文章:

c# - ObjectContext.ExecuteStoreCommand,如何在调用之间清除参数?

python - 我可以部署一个使用 sqlite3 作为谷歌应用引擎后端的 django 应用程序吗?

c# - 如何在泛型的 where 子句中指定泛型类?

c# - 在独特的部分拆分字符串,再次排序和连接

c# - DataGridView.Columns.AddRange c#

azure - 定期自动生成 Azure Batch AI 作业

python - 如何使用 Azure Synapse 和 pySpark 笔记本从 ADLS gen2 检索 .dcm 图像文件?

azure - 第三个 Azure token 生命周期指的是什么?

asp.net - 将 RDL 报告加载到 Web 报告查看器中

web-applications - 如何在不安装的情况下尝试新的语言或框架?