我们对hangfire还不熟悉,正努力让它运转起来。我们使用的是一个旧的asp.net版本,带有一个global.asax文件,而不是一个启动文件。我们有两个不同的环境,dev和staging。
除了HangfireSQL数据库的连接字符串外,代码是相同的,因为它位于不同的服务器上。在dev中一切都很好。表被创建,作业运行。但当我们将所有内容迁移到staging时,会出现以下错误,hangfire表无法创建:
jobstorage.current属性值尚未初始化。必须在使用hangfire客户端或服务器api之前进行设置
正如我所说,在我们的开发环境中,一切都可以正常工作,但是在staging中,我们会遇到错误,表也无法创建。我仍将包含代码以供参考。我假设这是一个问题连接到数据库或有权限的东西?任何理解这个错误的人能详细说明一下吗?
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);
暂无答案!
目前还没有任何答案,快来回答吧!