Веб-приложение ядра .net и чтение данных из центра событий Azure - PullRequest
0 голосов
/ 18 декабря 2018

Я пытаюсь получить данные из концентратора событий Azure и отобразить их в веб-приложении .NET core 2.1 с помощью signalR.Я следовал этому руководству https://docs.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 (строка [] 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 и запустить веб-приложение?Если я делаю что-то вроде этого

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

    }

Все компилируется, но ничего не происходит, когда в концентраторе событий появляется новое событие, и я не знаю, почему и как решить эту проблему

1 Ответ

0 голосов
/ 19 декабря 2018

В случае с веб-приложением все по-другому.Есть несколько способов сделать это.

1) Вы создаете веб-задание, если размещаете свое приложение в службе приложений Azure.

2) Используете сетку событий Azure.Вам нужно создать веб-хук (контроллер) в вашем .Net Core, который будет получать события.Концентратор событий отправляет события в веб-хук (для этого используется концентратор событий).Вы создаете веб-хук в концентраторе событий и указываете там свой контроллер.

3) Ваша заявка подписывается на события.Я не видел конкретного примера этого, но этот пример может дать вам подсказку.https://docs.microsoft.com/en-us/dotnet/standard/microservices-architecture/multi-container-microservice-net-applications/subscribe-events

...