一定要有hangfire数据库,否则hangfire会报错。 (obStorage.Current property value has not been initialized. You must set it before using Hangfire Client or Server API.)
1.准备个空库给hangfire使用。
2.添加OWIN Startup 类。在类库上-右键-添加-新建项-搜索startup
3. 在 app.UseHangfireServer(); 下一行创建任务计划
web.config:
<connectionStrings> <add name="HangfireDb_connection" connectionString="Data Source=.;Initial Catalog=HangfireDb;Integrated Security=True" providerName="System.Data.SqlClient" /> </connectionStrings>
-
Startup1.cs
using System; using System.Threading.Tasks; using Microsoft.Owin; using Owin; using Hangfire; [assembly: OwinStartup(typeof(任务计划HangFire.Startup1))] namespace 任务计划HangFire { public class Startup1 { public void Configuration(IAppBuilder app) { // 有关如何配置应用程序的详细信息,请访问 http://go.microsoft.com/fwlink/?LinkID=316888 try { //运用SqlServer存储,对应web.config中的connectionStrings中的name GlobalConfiguration.Configuration.UseSqlServerStorage("HangfireDb_connection"); app.UseHangfireDashboard();//配置后台仪表盘 app.UseHangfireServer();//开始使用Hangfire服务 } catch (Exception ex) { } #region MyRegion 任务计划HangFire.Job.Job1.SetJob1(); #endregion } } }
Job1.cs
using Hangfire; using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace 任务计划HangFire.Job { public class Job1 { public static void SetJob1() { try { RecurringJob.AddOrUpdate( () => DoJob1(), Cron.Minutely); } catch (Exception ex) { } } public static void DoJob1() { try { Console.WriteLine("Recurring!"); } catch (Exception ex) { } } } }
--
在域名后面加/hangfire ,可以看面板
http://localhost:41958/hangfire
--