Hangfire显示在同一服务器v.1.5.3上运行的两个实例 - 导致错误

Ogg*_*las 4 c# windows iis hangfire

我已按照此处指定的文档使应用程序始终运行并启用Service Auto-start.对于配置,我使用了此处指定的文档,在此应用程序中,我使用的是Hangfire 1.5.3版.我在同一台服务器上运行了另外两个Hangfire应用程序,一个使用Hangfire v.1.4.1,另一个使用1.4.5.这两项工作都完美无瑕.每个应用程序都在它自己的应用程序池下运行,并且代码没有区别.

无效的应用程序会在端口号后添加GUID,如下图所示.这个应用程序有时不会自动启动,我认为它与两个服务器实例有关.

我知道Hangfire已经使用ServerName修改了一些内容,因为如果使用"BackgroundJobServerOptions"和"ServerName"变量,则会收到过时的消息:

"服务器ID现在是自动生成的,此选项不再有意义.将在2.0.0中删除."

有没有人经历过这个并设法解决它?

注意:我没有在任何应用程序中使用BackgroundJobServerOptions,我尝试重新启动服务器.

在此输入图像描述

有效的两个应用程序:

在此输入图像描述

在此输入图像描述

Ogg*_*las 9

发现了问题.似乎在版本1.5.3中,可能是1.5 <,如果您已在Global.asax中注册了应用程序,则不应在OWIN Startup类中使用app.UseHangfireServer().当我注释掉下面的代码时,一切都开始了.

public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            ConfigureAuth(app);

            //GlobalConfiguration.Configuration.UseSqlServerStorage("DefaultConnection");
            //app.UseHangfireServer();
        }
    }
Run Code Online (Sandbox Code Playgroud)

更新:

我正在学习本教程:

http://docs.hangfire.io/en/latest/deployment-to-production/making-aspnet-app-always-running.html

的Global.asax.cs:

protected void Application_Start(object sender, EventArgs e)
{
    HangfireBootstrapper.Instance.Start();
}

protected void Application_End(object sender, EventArgs e)
{
    HangfireBootstrapper.Instance.Stop();
}
Run Code Online (Sandbox Code Playgroud)