密码含<特殊字符致Web.config中SQL Server连接字符串配置报错
解决Web.config中SQL Server密码含特殊字符的配置错误
Web.config属于XML格式的配置文件,<、>是XML预留的标签字符,直接写在connectionString里会被XML解析器误判为标签的起始/结束标识,导致配置文件无效报错。
以下两种方法可解决该问题:
转义XML特殊字符
将密码中的<替换为<,>替换为>,修改后的配置代码如下:<connectionStrings> <add name="DBString" connectionString="Data Source=[server_name];Initial Catalog=[database_name];User ID=[username];Password=4jghJ59<96>d6h6gghg!00" /> </connectionStrings>使用CDATA块包裹连接字符串
把整个connectionString的内容放在<![CDATA[ ]]>中,XML解析器会将CDATA内的内容视为纯文本,不会解析其中的特殊字符,修改后的代码如下:<connectionStrings> <add name="DBString" connectionString="<![CDATA[Data Source=[server_name];Initial Catalog=[database_name];User ID=[username];Password=4jghJ59<96>d6h6gghg!00]]>" /> </connectionStrings>
两种方法都能解决报错问题:如果仅存在少数特殊字符,转义字符的方式更简洁;如果密码包含多个特殊字符,使用CDATA块会更省事。
内容的提问来源于stack exchange,提问作者zmaggie
相关产品推荐
相关产品推荐

