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

.NET 8 Web API部署Azure时SQL连接触发CultureNotFoundException

解决.NET 8 Azure Web API全球化不变模式导致的SQL连接错误

问题原因

Azure Web Apps的.NET 8环境默认启用了全球化不变模式,项目里的<InvariantGlobalization>false</InvariantGlobalization>设置可能被部署流程或Azure默认配置覆盖,导致最终的runtimeconfig.json中System.Globalization.Invariant仍为true,进而引发SQL连接时的文化信息加载错误。

解决步骤

1. 配置runtimeconfig.template.json

在项目根目录创建或修改runtimeconfig.template.json文件,写入以下内容:

{
  "configProperties": {
    "System.Globalization.Invariant": false
  }
}

编译时该文件的配置会合并到最终生成的runtimeconfig.json中,确保部署后参数生效。

2. 通过Azure应用服务配置强制关闭不变模式

登录Azure门户,找到目标Web API资源:

  • 进入配置 > 应用程序设置
  • 添加新的应用设置:键为DOTNET_SYSTEM_GLOBALIZATION_INVARIANT,值设为false
  • 保存配置并重启Web App

3. 检查Visual Studio发布配置

如果使用Visual Studio发布项目:

  • 右键项目选择发布,点击编辑发布配置文件
  • 切换到设置标签,确认未勾选任何与“全球化不变模式”相关的选项
  • 重新发布项目

4. 验证部署结果

部署完成后,通过Azure的Kudu调试控制台(在Web App的高级工具中可进入),查看site/wwwroot目录下的应用程序runtimeconfig.json文件,确认System.Globalization.Invariant已设置为false。

补充说明

.NET 8对比.NET 6,在容器化、云托管等环境中默认启用了全球化不变模式,这是出现版本差异的核心原因。通过上述方法强制关闭该模式后,SQL连接就能正常加载en-us文化信息,解决连接错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 23:33:27