1

我正在编写一个 MVC 5 互联网应用程序,并希望Hangfire用于重复性任务。

我如何设置Hangfire使用SQL Server storage而不在Startup.Auth ConfigureAuth(IAppBuilder app)函数中指定它。

这是 SQL Server 配置的资源链接:http: //docs.hangfire.io/en/latest/configuration/using-sql-server.html

该资源指出:

如果要在不适用 OWIN Startup 类的 Web 应用程序之外使用 Hangfire,请手动创建 SqlServerStorage 实例并将其传递给 JobStorage.Current 静态属性。参数是一样的。

示例代码如下:

JobStorage.Current = new SqlServerStorage("connection string or its name");

我尝试了以下代码(使用我自己的连接字符串),但仪表板不可用。我已经从控制器函数中调用了上面的代码。

有什么我没有做对的吗?如何在不使用类的情况下设置Hangfire使用?SQL Server storageStartup.Auth

提前致谢。

4

1 回答 1

2

我认为这是你的问题:

我已经从控制器函数中调用了上面的代码。

您应该在应用程序启动时设置一次 - 在ConfigurationOWINStartup类的方法中(后跟一个app.UseHangFireServer();),或者如果您真的不想使用 OWIN ,则在您的Application_Start方法中。Global.asax.cs无论哪种方式,您要查找的行都在您参考的文档中:

Hangfire.GlobalConfiguration.Configuration.UseSqlServerStorage(@"connection string or connection string name");

但是,据我所知,如果您想使用仪表板,您必须通过 OWIN 配置该部分以及授权过滤器。请参阅http://docs.hangfire.io/en/latest/configuration/using-dashboard.html

所以真的,我不知道对所有这些使用 OWIN 配置是否有任何缺点。这是更现代的平台,因为您提到这是针对 MVC5 应用程序的,所以您不太可能有遗留问题。

于 2015-06-30T16:40:53.247 回答