Свойство Hangfire "JobStorage.current" не инициализируется? - PullRequest
0 голосов
/ 13 июля 2020

мы новички в Hangfire и пытаемся запустить его. Мы используем старую сборку ASP. net с файлом global.asax вместо файла запуска. У нас есть две разные среды: dev и staging.

Код идентичен, , за исключением строки подключения для базы данных hangfire sql, поскольку она расположена на другом сервере . В Dev все отлично работает. Таблицы создаются, работа выполняется. Но когда мы перенесли все на промежуточную стадию, мы получили следующую ошибку, и таблицы Hangfire не могут быть созданы:

Значение свойства JobStorage.Current не было инициализировано. Вы должны установить его перед использованием Hangfire Client или Server API

Как я уже сказал, в нашей среде разработки все работает нормально, но при постановке мы получаем эту ошибку, и таблицы также не создаются. Я все равно включу код для справки. Я предполагаю, что это проблема с подключением к базе данных или с разрешениями? Может ли кто-нибудь, кто понимает эту ошибку, подробно рассказать об этом?

    private IEnumerable<IDisposable> GetHangfireServers()
    {
        _kernel = new StandardKernel(new PartnerIntegrationServiceNinjectModule());
        GlobalConfiguration.Configuration
                           .SetDataCompatibilityLevel(CompatibilityLevel.Version_170)
                           .UseSimpleAssemblyNameTypeSerializer()
                           .UseRecommendedSerializerSettings()
                           .UseSqlServerStorage(_kernel.Get<ISettings>().HangfireConnectionString, new SqlServerStorageOptions
                           {
                               CommandBatchMaxTimeout = TimeSpan.FromMinutes(5),
                               SlidingInvisibilityTimeout = TimeSpan.FromMinutes(5),
                               QueuePollInterval = TimeSpan.Zero,
                               UseRecommendedIsolationLevel = true,
                               DisableGlobalLocks = true,
                               SchemaName = "Hangfire"
                           }) ;

        yield return new BackgroundJobServer();
    }

    protected override void OnApplicationStarted()
    {
        base.OnApplicationStarted();

        HangfireAspNet.Use(GetHangfireServers);
...