2

在我的ASP.NET應用程序中,我有一個web.config文件。在web.config文件中我有一個連接字符串...ConfigurationManager ConnectionStrings在哪裏獲取其值?

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

然而,當我檢索使用ConfigurationManager.ConnectionStringsp["HRDb"]這個值,我得到了我的舊的連接字符串,而不是新的。

其他地方(除了web.config)ConfigurationManager是否從連接字符串中讀取連接字符串值?

我從VS.NET運行應用程序(未部署到IIS)。

回答

3

我想通了哪裏出了問題。

所以要回答我自己的問題...... ConfigurationManager只能從web.config讀取。

我的問題是,該項目配置爲在運行項目而不是使用Visual Studio Development Server時使用IIS Web服務器。所以我實際上正在運行我的應用程序的舊版本。愚蠢。

+0

我確定我們都做了類似的事情:D最好的經驗教訓是最難學到的。 :) – 2008-10-28 07:56:28

0

「舊」值存儲在哪裏?它在不同的配置文件中?配置管理器只應從配置文件中提取,但應用程序可能有多個文件。您的構建過程的一部分是在舊文件中複製?

+0

舊值也存儲在web.config文件中。很奇怪。我沒有任何生成事件。我只有一個web.config,所以非常簡單。 如果ConfigurationManager只從web.config中讀取,那麼它肯定是我的一個bug。我會看看我能找到什麼... – willem 2008-10-28 07:37:41

1

雖然不太可能,但您可以在當前文件夾或甚至machine.config文件夾中的「父級」web.config中定義連接字符串。 嘗試在<add>元素之前添加一個<clear />元素。

0

我有一個類似的問題,其中的解決方案是,我抱着錯誤的web.config,一個由Visual Studio生成的時候添加一個文件左右。