Hangfire 后台作业创建失败,出现 InvalidCastException
Hangfire Background job creation failed with InvalidCastException
我正在尝试在我的 .net 核心中添加 hangfire project.It 创建 Hangfire 数据库,但每当我尝试添加重复作业或后台作业时都会抛出异常
Hangfire.BackgroundJobClientException: Background job creation failed. See inner exception for details.
---> System.InvalidCastException: Unable to cast object of type 'System.Data.SqlClient.SqlConnection' to type 'Microsoft.Data.SqlClient.SqlConnection'.
这是我的代码
services.AddHangfire(config =>
config.SetDataCompatibilityLevel(CompatibilityLevel.Version_170)
.UseSimpleAssemblyNameTypeSerializer()
.UseDefaultTypeSerializer()
.UseSqlServerStorage(Configuration.GetConnectionString("Hangfire"),
new Hangfire.SqlServer.SqlServerStorageOptions
{
SchemaName = "Test"
}));
services.AddHangfireServer();
app.UseHangfireDashboard();
backgroundJobClient.Enqueue(() => Console.WriteLine("Hello Hanfire job!"));
我认为我使用的 Hangfire 软件包版本可能存在一些问题,所以我也尝试了以前的版本,但没有任何区别。
我发现的一个建议是用 Microsoft.Data.SqlClient 替换 System.Data.SqlClient 库,但这是不可能的,因为 Hangfire.SqlServer 需要 System.Data.SqlClient.
我可以通过使用 Microsoft.Data.SqlClient 而不是像这样 System.Data.SqlClient 来解决问题
.UseSqlServerStorage(() => new Microsoft.Data.SqlClient.SqlConnection(Configuration.GetConnectionString("Hangfire"))
我正在尝试在我的 .net 核心中添加 hangfire project.It 创建 Hangfire 数据库,但每当我尝试添加重复作业或后台作业时都会抛出异常
Hangfire.BackgroundJobClientException: Background job creation failed. See inner exception for details. ---> System.InvalidCastException: Unable to cast object of type 'System.Data.SqlClient.SqlConnection' to type 'Microsoft.Data.SqlClient.SqlConnection'.
这是我的代码
services.AddHangfire(config =>
config.SetDataCompatibilityLevel(CompatibilityLevel.Version_170)
.UseSimpleAssemblyNameTypeSerializer()
.UseDefaultTypeSerializer()
.UseSqlServerStorage(Configuration.GetConnectionString("Hangfire"),
new Hangfire.SqlServer.SqlServerStorageOptions
{
SchemaName = "Test"
}));
services.AddHangfireServer();
app.UseHangfireDashboard();
backgroundJobClient.Enqueue(() => Console.WriteLine("Hello Hanfire job!"));
我认为我使用的 Hangfire 软件包版本可能存在一些问题,所以我也尝试了以前的版本,但没有任何区别。 我发现的一个建议是用 Microsoft.Data.SqlClient 替换 System.Data.SqlClient 库,但这是不可能的,因为 Hangfire.SqlServer 需要 System.Data.SqlClient.
我可以通过使用 Microsoft.Data.SqlClient 而不是像这样 System.Data.SqlClient 来解决问题
.UseSqlServerStorage(() => new Microsoft.Data.SqlClient.SqlConnection(Configuration.GetConnectionString("Hangfire"))