我有一个控制台应用程序,其中包含一个包含一个连接字符串的应用程序配置文件
<configuration>
<connectionStrings>
<add name="Target"
connectionString="server=MYSERVER; Database=MYDB; Integrated Security=SSPI;" />
</connectionStrings>
</configuration>
Run Code Online (Sandbox Code Playgroud)
当我使用以下命令将其传递给我的Connection时:
ConfigurationManager.ConnectionStrings[1].ToString()
Run Code Online (Sandbox Code Playgroud)
我有两个值,因此在集合中使用第二个,我的问题是第二个来自哪里?
我检查了\ Bin版本和原版,它不是我的!它显然是一个系统生成的,但我以前没见过这个?任何人都可以开导我吗?
神秘的连接字符串是:
data source=.\SQLEXPRESS;
Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;
User Instance=true
Run Code Online (Sandbox Code Playgroud)
这不是问题,我想知道为什么会发生这种情况?提前致谢!
为了将来参考那些可能会或可能不会偶然发现的人,在发现之后machine.config,很明显通过其索引引用配置是不好的做法,因为每个堆栈可能会有所不同,这就是使用"密钥"的原因.
在这个例子中,我的代码是:
ConfigurationManager.ConnectionStrings["Target"].ToString()
Run Code Online (Sandbox Code Playgroud)
干得好!
Rya*_*ldi 26
检查你的machine.config.如果您只想要输入,可以像这样添加<clear />元素到<connectionStrings>元素...
<connectionStrings>
<clear />
<add name="Target"
connectionString=
"server=MYSERVER; Database=MYDB; Integrated Security=SSPI;" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)