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

ASP.NET web.config中含左尖括号的密码导致连接字符串异常问题

web.config连接字符串含左尖括号无法连接问题解决方案

我在MVC项目的web.config文件中构建连接字符串时遇到问题:其余配置均正常,但我需要使用自动生成的密码,最新生成的密码包含左尖括号,使用该密码后连接字符串无法正确构建,最终出现连接失败问题。我使用的连接字符串如下:Data Source=JungJu.database.windows.net;Initial Catalog=MainDb;User ID=FuntoGo;Password=OV_Xu2v8j2K$@~/<bI,A]d;Authentication=Active Directory Password

问题根因

web.config 是标准XML格式文件,< 属于XML预留的语法字符,直接写在配置属性里会被XML解析器识别为标签的起始标记,导致配置解析错误,最终读取到的连接字符串不完整,触发连接失败。

解决方法

  • 方法1:对XML特殊字符做转义替换
    你密码里的 < 直接替换为XML转义字符 &lt; 即可,修改后的完整连接字符串如下:
    Data Source=JungJu.database.windows.net;Initial Catalog=MainDb;User ID=FuntoGo;Password=OV_Xu2v8j2K$@~/&lt;bI,A]d;Authentication=Active Directory Password
    补充:如果后续密码里出现其他XML特殊字符,对应转义规则为 & 替换为 &amp;、> 替换为 &gt;、单引号替换为 &apos;、双引号替换为 &quot;。
  • 方法2:用CDATA段包裹连接字符串
    如果密码里特殊字符较多,不想逐个转义,可以修改connectionStrings节点的写法,用CDATA标记包裹完整连接字符串,XML解析器会直接读取CDATA内的原始内容,不会解析里面的特殊字符,写法示例:
    <connectionStrings>
      <add name="MainDbConnection">
        <value><![CDATA[Data Source=JungJu.database.windows.net;Initial Catalog=MainDb;User ID=FuntoGo;Password=OV_Xu2v8j2K$@~/<bI,A]d;Authentication=Active Directory Password]]></value>
      </add>
    </connectionStrings>
    
  • 方法3:代码动态配置连接字符串
    也可以在MVC项目的Global.asax文件的Application_Start方法中,动态赋值连接字符串,代码字符串中的<不需要转义,示例如下:
    protected void Application_Start()
    {
        // 原有全局配置代码保留
        var connectionString = @"Data Source=JungJu.database.windows.net;Initial Catalog=MainDb;User ID=FuntoGo;Password=OV_Xu2v8j2K$@~/<bI,A]d;Authentication=Active Directory Password";
        ConfigurationManager.ConnectionStrings["MainDbConnection"].ConnectionString = connectionString;
    }
    

验证方式

修改完成后可在调试阶段读取 ConfigurationManager.ConnectionStrings["你的连接字符串配置名"].ConnectionString,确认输出内容和预期的原始连接字符串完全一致后,再测试数据库连接即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 11:15:03