【问题标题】:Where does ConfigurationManager ConnectionStrings get its value?ConfigurationManager ConnectionStrings 的价值在哪里?
【发布时间】:2010-09-19 12:56:35
【问题描述】:

在我的 ASP.NET 应用程序中,我有一个 web.config 文件。在 web.config 文件中,我有一个连接字符串...

<connectionStrings>
    <add name="HRDb" connectionString="xxxxx" providerName="System.Data.SqlClient" />
</connectionStrings>

然而,当我使用 ConfigurationManager.ConnectionStringsp["HRDb"] 检索此值时,我得到的是旧的连接字符串,而不是新的。

ConfigurationManager 还从哪里(除了 web.config)读取连接字符串值?

我正在从 VS.NET 运行应用程序(未部署到 IIS)。

【问题讨论】:

    标签: asp.net configuration connection-string configurationmanager


    【解决方案1】:

    “旧”值存储在哪里?它在不同的配置文件中吗?配置管理器应该只从配置文件中提取,但一个应用程序可以有多个文件。您的构建过程的一部分是否复制到旧文件中?

    【讨论】:

    • 旧值也存储在 web.config 文件中。很奇怪。我没有任何构建事件。我只有一个 web.config,所以一切都很简单。如果 ConfigurationManager 只从 web.config 读取,那么它一定是我这边的一个错误。我会看看我能找到什么......
    【解决方案2】:

    尽管不太可能,您也有可能在当前文件夹上方的文件夹中的“父”web.config 中定义连接字符串,甚至在 machine.config 中。 尝试在&lt;add&gt; 元素之前添加&lt;clear /&gt; 元素。

    【讨论】:

      【解决方案3】:

      我知道出了什么问题。

      所以回答我自己的问题... ConfigurationManager 只从 web.config 读取。

      我的问题是项目配置为在运行项目时使用 IIS Web 服务器,而不是使用 Visual Studio 开发服务器。所以我实际上正在运行我的应用程序的旧版本。傻。

      【讨论】:

      • 我相信我们都做过类似的事情 :D 最好的课程是最难学习的。 :)
      【解决方案4】:

      我遇到过类似的问题,解决方法是我持有错误的 web.config,这是由 Visual Studio 在添加文件时生成的。

      【讨论】:

        猜你喜欢
        • 2012-09-25
        • 1970-01-01
        • 2018-10-11
        • 1970-01-01
        • 1970-01-01
        • 2017-05-07
        • 1970-01-01
        • 1970-01-01
        • 2016-01-03
        相关资源
        最近更新 更多