在web.config连接string中转义引号

我的networkingconfiguration中有一个连接string:

<add name="MyConString" connectionString="Server=dbsrv;User ID=myDbUser;Password=somepass"word" providerName="System.Data.SqlClient" /> 

如您所见,密码中有一个引号(“)(由其他部门提供,我无法更改此db用户密码)。

我该如何逃避这个连接string中的引号?

顺便说一句:我已经试过“ 在string中。 这是行不通的 – ado.net得到了一个ArgumenException然后:“初始化string的格式不符合从索引57开始的规范。 57是“ 在我的连接string中。 我也尝试将密码部分封入“ – 也没有工作。

也试过“”和“ – web.config不能被parsing。

感谢您的解决scheme:

我必须结合双引号的转义和把密码放在单引号中:

 <add name="MyConString" connectionString="Server=dbsrv;User ID=myDbUser;Password='somepass&quot;word'" providerName="System.Data.SqlClient" /> 

使用&quot; 而不是"逃避它。

web.config是一个XML文件,所以你应该使用XML转义。

 connectionString="Server=dbsrv;User ID=myDbUser;Password=somepass&quot;word" 

看到这个论坛主题。

更新

&quot; 应该工作,但事实并非如此,你有没有尝试一些其他string转义为.NET? \"""

更新2:

尝试连接string的单引号:

 connectionString='Server=dbsrv;User ID=myDbUser;Password=somepass"word' 

要么:

 connectionString='Server=dbsrv;User ID=myDbUser;Password=somepass&quot;word' 

更新3:

从MSDN (SqlConnection.ConnectionString属性):

若要包含包含分号,单引号字符或双引号字符的值,则该值必须用双引号引起来。 如果该值同时包含分号和双引号字符,则该值可以用单引号引起来。

所以:

 connectionString="Server=dbsrv;User ID=myDbUser;Password='somepass&quot;word'" 

问题不在于web.config,而在于连接string的格式。 在一个连接string中,如果你有一个"在键值对中的值”,那么你需要把值放在'所以,而Password=somepass"word不起作用, Password='somepass"word'确实。

 connectionString="Server=dbsrv;User ID=myDbUser;Password=somepass&quot;word" 

由于web.config是XML,所以您需要转义五个特殊字符:

&amp;&&&,U + 0026
&lt; – > < 左尖括号,小于号,U + 003C
&gt; – >> 右尖括号,大于号,U + 003E
&quot; – > " 引号,U + 0022
&apos; – > ' 撇号,U + 0027

+我不是问题,我想。

如果&quot; 不工作,然后尝试&#34; 代替。

使用&quot; 这应该工作。