gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 14:46:49 25 4
gpt4 key购买 nike

我正在尝试从 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com