我正在尝试将hangfire集成到我的.NET核心Web应用程序中。我已通过安装所有必需的软件包来遵循Hangfire快速入门中的说明。我还安装了一个名为Hangfire MySql的扩展,并为此安装了必要的软件包。
步骤1说“使用连接字符串构造函数参数创建MySqlStorage的新实例,然后使用UseStorage方法将其传递给Configuration:”
GlobalConfiguration.Configuration.UseStorage(
new MySqlStorage(connectionString));
还要注意,“在连接字符串中必须将“允许用户变量”设置为true。例如:server=127.0.0.1;uid=root;pwd=root;database={0};Allow User Variables=True'
因此,我当前在Startup.CS文件中的“配置”服务中用于Hangfire的当前代码是:
Hangfire.GlobalConfiguration.Configuration.UseStorage( 新的MySqlStorage(connectionString));
app.UseHangfireDashboard();
app.UseHangfireServer();
但是MySqlStorage返回错误“ MySqlStorage'不包含带有1个参数的构造函数”
如果我使用并定义了我的connectionString,请查看Hangfire mySQL的自述文件
例如
connectionString = "server=127.0.0.1;uid=root;pwd=root;database={0};Allow User Variables=True"
GlobalConfiguration.Configuration.UseStorage(
new MySqlStorage(
connectionString,
new MySqlStorageOptions
{
TablesPrefix = "Hangfire"
}));
应用程序会说没有错误,但启动时仍然出现错误。
我尝试输入连接字符串,但输入的内容似乎无效。每次启动该应用程序时,我都会收到错误消息:
“暴击:Microsoft.AspNetCore.Hosting.Internal.WebHost [6] 应用程序启动异常 System.InvalidOperationException:无法找到所需的服务。请通过在应用程序启动代码中对“ ConfigureServices(...)”的调用内调用“ IServiceCollection.AddHangfire”来添加所有必需的服务。 在Hangfire.HangfireApplicationBuilderExtensions.ThrowIfNotConfigured(IApplicationBuilder应用) 在Hangfire.HangfireApplicationBuilderExtensions.UseHangfireDashboard(IApplicationBuilder应用,字符串路径匹配,DashboardOptions选项,JobStorage存储) 在/ Users / Admin / Desktop / Code Projects / Alerts / Alerts.API / Startup.cs:line 178“
中的Alerts.API.Startup.Configure(IApplicationBuilder应用,IHostingEnvironment env,ILoggerFactory loggerFactory)想知道是否有人可以给我一个示例,说明如何使用启动的mySqlStorage连接来设置Hangfire,让我查看Hangfire仪表板。
参考:https://github.com/arnoldasgudas/Hangfire.MySqlStorage Hangfire:http://docs.hangfire.io/en/latest/quick-start.html
答案 0 :(得分:4)
根据异常详细信息,似乎首先需要配置Hangfire服务,然后才能调用app.UseHangfireDashboard()。
在Startup.cs文件中,您应该具有ConfigureServices(IServiceCollection services)方法,似乎您必须在此处进行设置,而不是使用GlobalConfiguration类,因此可以尝试以下操作:
orange