You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修复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.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 12:02:40