【问题标题】:app.config weirdnessapp.config 怪异
【发布时间】:2010-10-12 21:49:26
【问题描述】:

我的 app.config 文件发生了一件奇怪的事情。我的 ConnectionStrings 部分包含以下内容:

<connectionStrings>
  <add name="Connection" connectionString="Data Source=TheServer;
   Initial Catalog=TheDatabase;IntegratedSecurity=SSPI" 
   providerName="System.Data.SqlClient"/>
</connectionStrings>

但是,当我通过 ConfigurationManager.ConnectionStrings[0] 查询该部分时,我得到了这个连接字符串:

Data Source=.\\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true

它从哪里得到这个值?

【问题讨论】:

    标签: c# app-config


    【解决方案1】:

    虽然 Jason Punyon 已经回答了这个问题,但我强烈建议您通过它们的名称而不是它们的索引来访问您的连接字符串。 例如

    ConfigurationManager.ConnectionStrings["Connection"]
    

    【讨论】:

      【解决方案2】:

      它来自 machine.config。 .NET 自动合并您的应用程序配置(或 Web 配置)和您的 machine.config 的连接字符串部分(以及我相信的其他部分)。

      您可以阅读它在 ASP.NET here 中的工作原理。

      【讨论】:

      • 我明白了。谢谢你。那为什么不引用 app.config 文件呢?我以前没有发生过这种情况。
      • @woodstock: 是的,但您是通过索引调用它,而 0 恰好是层次结构中定义的第一个
      【解决方案3】:

      除了 Nath 的回答,这样更好:

      ConfigurationManager.ConnectionStrings["Connection"]
      

      【讨论】:

        【解决方案4】:

        它是从 machine.config 中读取的,您可以确保在添加自己的连接字符串之前清除所有连接字符串:

        <connectionStrings>
          <clear/>
          <add name="Connection" connectionString="Data Source=TheServer;
           Initial Catalog=TheDatabase;IntegratedSecurity=SSPI" 
           providerName="System.Data.SqlClient"/>
        </connectionStrings>
        

        或者永远不要通过索引来引用你的连接字符串,使用你给它们的名字:

        ConfigurationManager.ConnectionStrings["Connection"]
        

        【讨论】:

          【解决方案5】:

          它来自另一个配置,要么是树中较高的 app.config,要么来自机器配置。要忽略其他任何内容,请使用 &lt;clear /&gt; 删除当前配置中没有的任何内容。

          <connectionStrings>
             <clear />
             <add name="Connection" connectionString="Data Source=TheServer;
               Initial Catalog=TheDatabase;IntegratedSecurity=SSPI" 
               providerName="System.Data.SqlClient"/>
          </connectionStrings>
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2011-01-29
            • 1970-01-01
            • 2012-01-11
            • 2012-10-28
            • 2014-09-17
            • 2012-11-15
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多