如何修复Hangfire中UsePostgreSqlStorage已过时的连接配置警告?
Hangfire.PostgreSql 过时警告处理方案
问题背景
现有Hangfire配置代码触发了API过时警告,具体代码、警告信息及使用的包版本如下:
触发警告的代码
builder.Services.AddHangfire(config => config .SetDataCompatibilityLevel(CompatibilityLevel.Version_180) .UseSimpleAssemblyNameTypeSerializer() .UseRecommendedSerializerSettings() .UsePostgreSqlStorage(defaultConnString));
警告内容
'PostgreSqlBootstrapperConfigurationExtensions.UsePostgreSqlStorage(IGlobalConfiguration, string)' 已过时: '将在2.0版本移除,请使用 UsePostgreSqlStorage(Action
) 重载方法。'
当前使用的NuGet包版本
<PackageReference Include="Hangfire.AspNetCore" Version="1.8.12" /> <PackageReference Include="Hangfire.PostgreSql" Version="1.20.8" />
用户反馈:尝试其他配置方式均无法正常运行,仅上述带警告的代码能正常工作,需解决警告同时保证功能可用。
解决方案
改用官方推荐的UsePostgreSqlStorage(Action<PostgreSqlStorageOptions>)重载方法,通过配置对象传入连接字符串,修改后的代码如下:
builder.Services.AddHangfire(config => config .SetDataCompatibilityLevel(CompatibilityLevel.Version_180) .UseSimpleAssemblyNameTypeSerializer() .UseRecommendedSerializerSettings() .UsePostgreSqlStorage(options => { options.ConnectionString = defaultConnString; // 如需自定义其他存储配置(如批量操作大小、表前缀等),可在此添加 }));
注意事项
如果之前使用该重载方法出现异常,排查以下几点:
- 确认已引用
Hangfire.PostgreSql命名空间 - 检查
defaultConnString连接字符串格式是否正确 - 若需完全保留原有行为,仅设置
ConnectionString即可,其他配置项保持默认值与原代码逻辑一致
内容的提问来源于stack exchange,提问作者Sergey M.
相关产品推荐
相关产品推荐

