мы новички в 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);