私は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)
私はこのエラーを受け取りました:-
非同期メソッドはサポートされていません。バックグラウンドで使用する前に同期してください。
誰でもこれら2つの問題を修正する方法をアドバイスできますか?
ありがとう
編集
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 を使用する前に設定する必要があります。