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

部署到IIS后appsettings.json中ConnectionString出现解析错误

解决ASP.NET Core部署IIS时appsettings.json的JSON解析错误

我正在开发一个ASP.NET Core MVC项目,在appsettings.json文件中配置了如下连接字符串:

{
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "AllowedHosts": "*",
  "ConnectionStrings": {
    "LabConnectionString": "Server=1234-98761\SQLEXPRESS;Database=db;Trusted_Connection=True;MultipleActiveResultSets=true;",
    "providerName": "System.Data.SqlClient"
  }
}

项目在Visual Studio中运行正常,但编译后部署到IIS服务器时,日志中出现如下错误:

未处理的异常: System.FormatException: 无法解析JSON文件。第9行错误: "ConnectionStrings": {
"LabConnectionString": "data source=1234-98761;initial catalog=db;Trusted_Connection=True;MultipleActiveResultSets=true;",'.

Newtonsoft.Json.JsonReaderException: 无效的JSON转义序列: \S。路径'ConnectionStrings.LabConnectionString',第9行,位置52。

问题原因

JSON语法中,单个反斜杠\是转义字符的起始标记,不能直接作为普通字符使用。原连接字符串里的\SQLEXPRESS被JSON解析器识别为试图转义字符S,但\S不是合法的JSON转义序列,导致解析失败。

解决方案

将连接字符串中的单个反斜杠替换为双反斜杠\\,让JSON解析器将其识别为普通的反斜杠字符。修改后的完整配置如下:

{
  "Logging": {
    "LogLevel": {
      "Default": "Warning"
    }
  },
  "AllowedHosts": "*",
  "ConnectionStrings": {
    "LabConnectionString": "Server=1234-98761\\SQLEXPRESS;Database=db;Trusted_Connection=True;MultipleActiveResultSets=true;",
    "providerName": "System.Data.SqlClient"
  }
}

补充说明

Visual Studio开发环境中能正常运行,是因为开发模式下的配置加载逻辑对单反斜杠有兼容处理,但IIS部署时是直接读取并严格解析JSON文件,必须遵循标准JSON语法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 02:40:28