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

配置Hangfire使用内存存储,为何Azure上自动生成SQL数据库?

Hangfire使用内存存储却创建Azure SQL数据库的原因及解决方法

可能的原因

  • 误安装了Hangfire.SqlServer NuGet包:若项目中包含该包,即使代码显式指定UseMemoryStorage,Hangfire可能在检测到Azure环境中的默认连接字符串(如DefaultConnection)时,自动 fallback 到SQL存储并创建数据库。
  • Azure App Service的连接字符串配置:如果你的App Service中设置了Hangfire或DefaultConnection这类命名的连接字符串,Hangfire的配置系统可能会优先读取这些环境配置,覆盖代码中显式设置的内存存储。
  • 配置文件中的隐藏设置:检查appsettings.json或环境对应的配置文件,是否存在Hangfire相关的配置节,强制指定了SQL存储类型和连接字符串。

解决步骤

  1. 清理NuGet依赖:打开项目的NuGet包管理器,卸载Hangfire.SqlServer包(如果未使用SQL存储的话)。
  2. 检查Azure连接字符串配置:登录Azure门户,进入你的App Service -> 配置 -> 连接字符串,删除或重命名与Hangfire相关的连接字符串(避免命名被Hangfire自动识别)。
  3. 确认代码配置唯一性:检查项目中是否有其他地方修改Hangfire的存储配置,确保services.AddHangfire(op => op.UseMemoryStorage());是唯一的存储配置代码,且没有后续的覆盖操作。
  4. 排查配置文件:打开appsettings.json等配置文件,删除任何类似以下的Hangfire配置节:
    "Hangfire": {
      "ConnectionString": "Server=tcp:...",
      "Storage": "SqlServer"
    }
    

内容的提问来源于stack exchange,提问作者ThiagoWerneck

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 22:57:18