App.config - LocalSqlServer连接字符串

时间:2013-05-07 10:22:46

标签: vb.net

请参阅以下代码:

Public Shared Sub SyncConnectionStrings()
    Dim strCon As String
    Dim tyDatabase As typeDatabase
    Dim boolConfigChanged As Boolean
    'Dim config As System.Configuration.Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)
    Dim config As Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)
    Dim strConnectionString As ConnectionStringSettings            
    For Each strConnectionString In ConfigurationManager.ConnectionStrings
        'More code here, but irrelevant for this question.
    Next
End Sub

代码循环遍历app.config文件中的所有连接字符串。 app.config中有三个连接字符串,但找到了四个连接字符串。在哪里:LocalSqlServer(这是ConfigurationManager.ConnectionStrings.Name)定义的?

2 个答案:

答案 0 :(得分:11)

它位于

的Machine.config全局文件中
"C:\Windows\Microsoft.NET\Framework\v4.0.30319\CONFIG".

它是在安装.NET.Framework时生成的,并且是由在ASPNETDB上工作的工具所需要的

如果您不需要,可以尝试将此添加到您的app.config

<connectionStrings>
<clear/>
.....

<connectionStrings>
<remove name="LocalSqlServer" />

但我真的建议不要在Machine.Config中更改任何内容,除非你知道副作用。

答案 1 :(得分:3)

在Machine.config中可能只有LocalSqlServer。 例如我刚刚在Machine.config中使用MySql连接的计算机上运行我的应用程序

您可以使用ConnectionStringSetting的ElementInformation属性来确定来自哪里:

            foreach (ConnectionStringSettings c in ConfigurationManager.ConnectionStrings)
        {
            ElementInformation elementInfo = c.ElementInformation;
            String source = elementInfo.Source;

            if (source == null)
            {
                //Machine.config
            } 
            else
            {
                Console.WriteLine("{0} {1} {2}", c.Name, elementInfo.Source, c.ConnectionString);
            }
        }