gpt4 book ai didi

c# - 如何为 Hangfire 的 mySQL 数据库设置 'connectionString'?

转载 作者:行者123 更新时间:2023-12-02 15:08:01 25 4
gpt4 key购买 nike

我正在尝试将 Hangfire 集成到我的 .NET Core Web 应用程序中。我已按照 Hangfire 快速入门上的说明安装所有必要的软件包。我还安装了一个名为 Hangfire MySql 的扩展,并为其安装了必要的软件包。

第 1 步表示“使用连接字符串构造函数参数创建 MySqlStorage 的新实例,并使用 UseStorage 方法将其传递给配置:”

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

还请注意,“连接字符串中必须将允许用户变量设置为 true”。例如:server=127.0.0.1;uid=root;pwd=root;database={0};允许用户变量=True'

所以我当前的 Startup.CS 文件中“配置”服务内的 Hangfire 代码是这样的:

Hangfire.GlobalConfiguration.Configuration.UseStorage( 新的 MySqlStorage(connectionString));

    app.UseHangfireDashboard();
app.UseHangfireServer();

但是 MySqlStorage 返回错误“MySqlStorage”不包含采用 1 个参数的构造函数”

如果我使用并定义我的连接字符串,请查看 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中的Alerts.API.Startup.Configure(IApplicationBuilder应用程序,IHostingEnvironment env,ILoggerFactory loggerFactory):第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类,所以你可以尝试这个:

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"
}
)
);
};
}

关于c# - 如何为 Hangfire 的 mySQL 数据库设置 'connectionString'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54384732/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com