我正在开发一个 asp.net mvc5 Web 应用程序,并且我安装了 Hangfire:-
Install-Package Hangfire
之后,我创建了一个 startup.css 类,如下所示:-
public class Startup
{
public void Configuration(IAppBuilder app)
{
}
}
然后在我的 global.asax 文件中,我尝试调用 2 个操作方法;Index ()
& ScanServer()
,如下:-
HomeController h = new HomeController();
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RouteConfig.RegisterRoutes(RouteTable.Routes);
RecurringJob.AddOrUpdate(() => h.Index(), Cron.Minutely);
}
&
RecurringJob.AddOrUpdate(() => h.ScanServer(*****), Cron.Minutely);
现在,当 Hangfire 尝试调用具有以下定义的 Index() 操作方法时:-
public ActionResult Index()
我收到了这个错误:-
JobStorage.Current 属性值尚未初始化。您必须在使用 Hangfire 客户端或服务器 API 之前设置它。
而当 Hangfire 尝试调用 ScanServer() 操作方法时,它是一个异步任务,具有以下定义:-
public async Task<ActionResult> ScanServer(string tokenfrom)
我收到了这个错误:-
不支持异步方法。请在后台使用它们之前使它们同步。
那么任何人都可以建议如何解决这两个问题吗?
谢谢
编辑
我在 Startup 类中写了以下内容:-
using Hangfire;
using Microsoft.Owin;
using Owin;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using ScanningFinal;
[assembly: OwinStartup(typeof(Startup))]
namespace ScanningFinal
{
public class Startup
{
public void Configuration(IAppBuilder app)
{
GlobalConfiguration.Configuration
.UseSqlServerStorage("scanservice");
}
}
}
&这里是连接字符串:-
<add name="scanservice" connectionString="data source=localhost;initial catalog=ScanningService;integrated security=True" providerName="System.Data.SqlClient"/>
但我仍然收到此错误:-
JobStorage.Current 属性值尚未初始化。您必须在使用 Hangfire 客户端或服务器 API 之前设置它。