Повторяющаяся ошибка строки подключения

У меня есть веб-сайт, развернутый на сервере. Однажды он выдал ошибку, говоря, что имя connection string уже добавлено. Я проверил файл web.config, и в нем есть только одна запись с таким именем. Я удалил запись из конфига. Теперь сайт работал хорошо и получал данные из базы данных.

Примечание. Когда я изменил имя файла конфигурации, он показывает ошибку.

Я думаю, проблема в том, что часть строки подключения кэшируется в памяти. Это так? Как мы можем преодолеть это нежелательное поведение?

Файлы конфигурации в исходном коде

Выпустить конфигурацию

<system.web>
 <compilation xdt:Transform="RemoveAttributes(debug)" />

</system.web>

Конфигурация отладки

<system.web>

</system.web>

ИСПОЛЬЗОВАННАЯ ЛИТЕРАТУРА:

  1. Проблема с появлением нежелательной строки подключения в моем опубликованном веб-сайте конфигурация
  2. Строки подключения App.Config .NET 2.0 включают нежелательные SQLExpress по умолчанию

person LCJ    schedule 10.01.2013    source источник
comment
См. stackoverflow.com/questions/16547034/ для связанного вопроса   -  person LCJ    schedule 16.05.2013


Ответы (1)


Проблема не в этом — когда вы изменяете файл web.config, процесс IIS сбрасывается, поэтому кэширование не может быть задействовано.

Более вероятно, что существует родительский или дочерний каталог с файлом web.config, который содержит то же самое имя строки подключения — это вызывает ошибку.

Вы можете решить это несколькими способами:

  • Убедитесь, что в правильной области есть только один web.config с именем строки подключения.
  • Используйте элемент remove:

    <connectionStrings>
     <remove name="theConnectionString" />
     <add name="theConnectionString" ... />
    <connectionStrings>
    

См. Зашифрованный файл конфигурации не применяет тег «удалить» в connectionStrings для связанного вопроса

person Oded    schedule 10.01.2013
comment
Спасибо. Remove сработало. Можете ли вы объяснить, почему он работал до вчерашнего дня и не работает сегодня? Я не вносил никаких изменений на сайт - person LCJ; 10.01.2013
comment
Может ли xdt:Transform=RemoveAttributes(debug) быть проблемой? - person LCJ; 10.01.2013
comment
@Lijo - Кто знает почему? Я не сижу перед твоим компьютером. Возможно, вы скопировали web.config в неправильный каталог. И эта трансформация, скорее всего, не будет задействована. - person Oded; 10.01.2013
comment
Хотя это решило мою первоначальную проблему, это не работает, когда я зашифровал файлы конфигурации с помощью aspnet_regiis, как опубликовано в stackoverflow.com/questions/16547034/ . Как мы можем это решить? - person LCJ; 14.05.2013