Asp.net mvc OWIN异步启动(使用Hangfire)

Asp.net mvc OWIN异步启动(使用Hangfire),asp.net-mvc,owin,hangfire,Asp.net Mvc,Owin,Hangfire,我正在远程SQL服务器上使用Hangfire和SQL存储,并将其与我现有的MVC站点一起运行。我的创业课程非常简单: public void Configuration(IAppBuilder app) { app.UseHangfire(config => { config.UseSqlServerStorage("MY_CONNECTION_STRING"); config.UseServer();

我正在远程SQL服务器上使用Hangfire和SQL存储,并将其与我现有的MVC站点一起运行。我的创业课程非常简单:

public void Configuration(IAppBuilder app) 
{
        app.UseHangfire(config =>
        {
            config.UseSqlServerStorage("MY_CONNECTION_STRING");
            config.UseServer();
        });
}

问题是,连接到远程服务器的任何延迟都会延迟MVC站点的启动。是否有一种异步启动OWIN的方法,使项目能够响应请求,而不管OWIN启动期间发生了什么,包括致命错误?

Hangfire初始化逻辑在专用线程中执行,以减少应用程序的启动时间。所以,UseServer方法只创建一个新线程,没有任何附加逻辑

使用SQLServerStorage方法连接到数据库以检查当前架构,以便在必要时运行自动迁移—对Hangfire.schema表进行一次简单查询。这是默认行为,但是您可以:

执行此步骤后,Hangfire将不会在启动时连接到您的数据库,其他类也不会这样做。但请注意发行说明,它们将包含有关数据库存储更改的信息

var options = new SqlServerStorageOptions
{
    PrepareSchemaIfNecessary = false
};

var storage = new SqlServerStorage("<name or connection string>", options);