Вопрос

В моем приложении 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).

Это было полезно?

Решение

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

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

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

Другие советы

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top