Где ConfigurationManager ConnectionStrings получает свое значение? - PullRequest
2 голосов
/ 28 октября 2008

В моем приложении ASP.NET у меня есть файл web.config. В файле web.config у меня есть строка подключения ...

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

Тем не менее, когда я получаю это значение с помощью ConfigurationManager.ConnectionStringsp["HRDb"], я получаю мою старую строку подключения, а не новую.

Где еще (кроме web.config) ConfigurationManager считывает значения строки подключения из?

Я запускаю приложение из VS.NET (не развернуто в IIS).

Ответы [ 4 ]

4 голосов
/ 28 октября 2008

Я понял, что происходит не так.

Итак, чтобы ответить на мой собственный вопрос ... ConfigurationManager читает только из web.config.

Моя проблема заключалась в том, что проект был настроен на использование веб-сервера IIS при запуске проекта вместо использования сервера разработки Visual Studio. Так что на самом деле я запускал старую версию своего приложения. Глупо.

1 голос
/ 28 октября 2008

Также возможно, хотя и маловероятно, что у вас есть строка подключения, определенная в «родительском» web.config в папке над вашей текущей папкой или даже в machine.config. Попробуйте добавить элемент <clear /> перед элементом <add>.

0 голосов
/ 19 августа 2010

У меня была похожая проблема, решение которой состояло в том, что я держал неправильный файл web.config, который был сгенерирован Visual Studio при добавлении файла или около того.

0 голосов
/ 28 октября 2008

Где хранилось «старое» значение? Это в другом конфигурационном файле? Диспетчер конфигурации должен извлекать только файлы конфигурации, но для приложения может быть несколько файлов. Является ли часть процесса сборки копированием старого файла?

...