Hangfire:该类型不包含带签名的方法

时间:2017-07-27 06:50:24

标签: c# hangfire fire-and-forget

我有一个Web应用程序,其中Page1.aspx执行task1,然后以fireAndforget方式将task2排入调度程序。

我正在使用Hangfire并且所有内容都已安装且正常工作但只有一次 doLongJob()没有参数时(测试时)。然后我添加了一个参数(我将添加更多)。 之后我面对这些errors

Page1.aspx.cs

string strMsgID = //task1 returns a value;
BackgroundJob.Enqueue(() => doLongJob(strMsgID));

public void doLongJob(string strMsgID)
{
    int status = //task2(strMsgID);
    while( status == 2)
    {
        Thread.Sleep(10000);
        status = //task2(strMsgID);
        }
    }
}

Startup.cs

using Hangfire;
using Microsoft.Owin;
using Owin;
[assembly: OwinStartup(typeof(erp.Startup))]
namespace erp
{
    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {

            app.UseHangfireDashboard();

            app.UseHangfireServer();

        }
    }
}

的Global.asax.cs

protected void Application_Start(object sender, EventArgs e)
{
    GlobalConfiguration.Configuration.UseStorage(new MySqlStorage("hangfire"));
}

2 个答案:

答案 0 :(得分:0)

我遇到了类似的问题,原来是来自存储连接。

在你的代码中,我认为你传递一个字符串"hangfire",而你应该传递连接字符串

GlobalConfiguration.Configuration.UseStorage(new MySqlStorage(connectionString));

您可以通过hangfire here

找到更多MySQL配置选项

答案 1 :(得分:0)

您是否仔细检查了失败作业的日期?

我有一个类似的问题-原来我只是从前看着同样失败的工作。因为这是最近一次失败的工作,所以我不认为要检查它是否比看起来老。