Как мне установить 'connectionString' для базы данных mySQL для Hangfire? - PullRequest
0 голосов
/ 27 января 2019

Я пытаюсь интегрировать Hangfire в свое основное веб-приложение .NET.Я следовал инструкциям по быстрому запуску Hangfire, установив все необходимые пакеты.Я также установил расширение под названием Hangfire MySql и установил для него необходимые пакеты.

Шаг 1 говорит: «Создайте новый экземпляр MySqlStorage с параметром конструктора строки подключения и передайте его в Configuration с использованием метода UseStorage:«

 GlobalConfiguration.Configuration.UseStorage(
    new MySqlStorage(connectionString));

Также отмечается, что «Должно быть разрешеноПеременные пользователя имеют значение true в строке подключения.Например: server=127.0.0.1;uid=root;pwd=root;database={0};Allow User Variables=True'

, поэтому мой текущий код для Hangfire внутри службы 'Configure' в моем файле Startup.CS такой:

Hangfire.GlobalConfiguration.Configuration.UseStorage (new MySqlStorage (connectionString));

    app.UseHangfireDashboard();
    app.UseHangfireServer();

однако MySqlStorage возвращает ошибку «MySqlStorage» не содержит конструктор, который принимает 1 аргумент «

Просмотр readMe для Hangfire mySQL, если я использую и определяюmy connectionString to

например,

 connectionString = "server=127.0.0.1;uid=root;pwd=root;database={0};Allow User Variables=True"

GlobalConfiguration.Configuration.UseStorage(
    new MySqlStorage(
        connectionString, 
        new MySqlStorageOptions
        {
            TablesPrefix = "Hangfire"
        }));

приложение сообщит, что ошибок нет, но при запуске все равно появляется ошибка.

Я попытался ввести строку подключенияно ничего, что я ввожу, кажется, не работает.Каждый раз, когда я запускаю приложение, я получаю сообщение об ошибке:

"crit: Microsoft.AspNetCore.Hosting.Internal.WebHost [6] Исключение при запуске приложения System.InvalidOperationException: Невозможно найти необходимые службы. Пожалуйста, добавьте всенеобходимые сервисы путем вызова IServiceCollection.AddHangfire внутри вызова ConfigureServices (...) в коде запуска приложения.Параметры DashboardOptions, хранилище JobStorage) в Alerts.API.Startup.Configure (приложение IApplicationBuilder, окружение IHostingEnvironment, ILoggerFactory loggerFactory) в каталоге / Users / Admin / Desktop / Code Projects / Alerts / Alerts.API / Startup.cs: строка 178 "

Интересно, может ли кто-нибудь дать мне пример того, как настроить Hangfire с подключением mySqlStorage, которое запускается и позволяет мне просматривать панель мониторинга Hangfire.

Ссылки: https://github.com/arnoldasgudas/Hangfire.MySqlStorage Hangfire: http://docs.hangfire.io/en/latest/quick-start.html

1 Ответ

0 голосов
/ 27 января 2019

Судя по деталям исключений, сначала необходимо настроить службу Hangfire, прежде чем можно будет вызывать app.UseHangfireDashboard ().

В вашем файле Startup.cs у вас должен быть метод ConfigureServices (IServiceCollection services), кажется, что вы должны выполнить настройку здесь вместо использования класса GlobalConfiguration, поэтому вы можете попробовать это:

public void ConfigureServices(IServiceCollection services)
{
    services.AddHangfire(configuration => {
        configuration.UseStorage(
            new MySqlStorage(
                "server=127.0.0.1;uid=root;pwd=root;database={0};Allow User Variables=True",
                new MySqlStorageOptions
                {
                    TablesPrefix = "Hangfire"
                }
            )
        );
    };
}
...