如何为 Hangfire 的 mySQL 数据库设置 'connectionString'?
How do I set up 'connectionString' for a mySQL database for Hangfire?
我正在尝试将 hangfire 集成到我的 .NET 核心 Web 应用程序中。我按照 Hangfire quickstart 上的说明安装了所有必要的包。我还安装了一个名为 Hangfire MySql 的扩展,并为其安装了必要的软件包。
第 1 步说 'Create new instance of MySqlStorage with connection string constructor parameter and pass it to Configuration with UseStorage method:'
GlobalConfiguration.Configuration.UseStorage(
new MySqlStorage(connectionString));
还注意到“必须在连接字符串中将允许用户变量设置为 true。例如:server=127.0.0.1;uid=root;pwd=root;database={0};Allow User Variables=True'
所以我的 Startup.CS 文件中 'Configure' 服务中的 Hangfire 当前代码是这样的:
Hangfire.GlobalConfiguration.Configuration.UseStorage(
新 MySql存储(connectionString));
app.UseHangfireDashboard();
app.UseHangfireServer();
但是 MySql存储 returns 错误“'MySqlStorage' 不包含采用 1 个参数的构造函数”
查看 Hangfire mySQL 的自述文件,如果我使用并将我的 connectionString 定义为
例如
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 存储)
在 Alerts.API.Startup.Configure(IApplicationBuilder 应用程序,IHostingEnvironment env,ILoggerFactory loggerFactory)在 /Users/Admin/Desktop/Code Projects/Alerts/Alerts.API/Startup.cs:line 178"
想知道是否有人可以给我一个示例,说明如何使用启动的 mySqlStorage 连接设置 Hangfire,让我查看 Hangfire 仪表板。
参考文献:https://github.com/arnoldasgudas/Hangfire.MySqlStorage
吊火:http://docs.hangfire.io/en/latest/quick-start.html
根据异常详细信息,您似乎需要先配置 Hangfire 服务才能调用 app.UseHangfireDashboard()。
在你的 Startup.cs 文件中你应该有一个 ConfigureServices(IServiceCollection services) 方法,看来你必须在这里进行设置而不是使用 GlobalConfiguration class,所以你可以试试这个:
public void ConfigureServices(IServiceCollection services)
{
services.AddHangfire(configuration => {
configuration.UseStorage(
new MySqlStorage(
"server=127.0.0.1;uid=root;pwd=root;database={0};Allow User Variables=True",
new MySqlStorageOptions
{
TablesPrefix = "Hangfire"
}
)
);
};
}
我正在尝试将 hangfire 集成到我的 .NET 核心 Web 应用程序中。我按照 Hangfire quickstart 上的说明安装了所有必要的包。我还安装了一个名为 Hangfire MySql 的扩展,并为其安装了必要的软件包。
第 1 步说 'Create new instance of MySqlStorage with connection string constructor parameter and pass it to Configuration with UseStorage method:'
GlobalConfiguration.Configuration.UseStorage(
new MySqlStorage(connectionString));
还注意到“必须在连接字符串中将允许用户变量设置为 true。例如:server=127.0.0.1;uid=root;pwd=root;database={0};Allow User Variables=True'
所以我的 Startup.CS 文件中 'Configure' 服务中的 Hangfire 当前代码是这样的:
Hangfire.GlobalConfiguration.Configuration.UseStorage( 新 MySql存储(connectionString));
app.UseHangfireDashboard();
app.UseHangfireServer();
但是 MySql存储 returns 错误“'MySqlStorage' 不包含采用 1 个参数的构造函数”
查看 Hangfire mySQL 的自述文件,如果我使用并将我的 connectionString 定义为
例如
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 存储) 在 Alerts.API.Startup.Configure(IApplicationBuilder 应用程序,IHostingEnvironment env,ILoggerFactory loggerFactory)在 /Users/Admin/Desktop/Code Projects/Alerts/Alerts.API/Startup.cs:line 178"
想知道是否有人可以给我一个示例,说明如何使用启动的 mySqlStorage 连接设置 Hangfire,让我查看 Hangfire 仪表板。
参考文献:https://github.com/arnoldasgudas/Hangfire.MySqlStorage 吊火:http://docs.hangfire.io/en/latest/quick-start.html
根据异常详细信息,您似乎需要先配置 Hangfire 服务才能调用 app.UseHangfireDashboard()。
在你的 Startup.cs 文件中你应该有一个 ConfigureServices(IServiceCollection services) 方法,看来你必须在这里进行设置而不是使用 GlobalConfiguration class,所以你可以试试这个:
public void ConfigureServices(IServiceCollection services)
{
services.AddHangfire(configuration => {
configuration.UseStorage(
new MySqlStorage(
"server=127.0.0.1;uid=root;pwd=root;database={0};Allow User Variables=True",
new MySqlStorageOptions
{
TablesPrefix = "Hangfire"
}
)
);
};
}