2013-05-14 2 views
3

На основании вопроса Duplicate Connection String Error Я добавил тэг remove перед добавлением строки подключения. Это решило проблему для первоначального вопроса.Зашифрованный файл конфигурации не применяется к тегу «удалить» в connectionStrings

Но, когда я применил шифрование RSA для файла web.config (используя aspnet_regiis), ошибка вернулась.

Сообщение об ошибке Parser: запись 'theConnectionString' уже добавлена.

Я думаю, что при шифровании он не вызывает оператор 'remove'. Это так? Любой обходной путь для этой проблемы?

Оригинал ConnectionString

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

Зашифрованные Config

enter image description here

+0

Как выглядит элемент в зашифрованном виде? (не публикуйте весь текст шифрования) – Oded

+0

@Oded Я обновил вопрос с помощью скриншота зашифрованного раздела. Пожалуйста, дайте мне знать, если какие-либо проблемы при загрузке изображения. – Lijo

+1

Когда вы вручную расшифровываете его обратно, как оно выглядит? – Oded

ответ

2

Clear Используя вместо Remove в качестве первого оператора в разделе ConnectionStrings, я мог бы решить эту проблему.

Примечание: Clear сохраняется даже после того, как я вручную расшифровал файл конфигурации. Но Remove не сохраняется после шифрования-дешифрования. [Спасибо @Oded за то, что комментарий, чтобы проверить это]

См Connection Strings and Configuration Files

Файл machine.config содержит также раздел ConnectionStrings, который содержит строки соединения, используемые в Visual Studio. При получении строк подключения по имени поставщика из файла app.config в приложении Windows сначала загружаются строки подключения в machine.config, а затем записи из app.config. Добавление очистки сразу после того, как элемент connectionStrings удаляет все унаследованные ссылки из структуры данных в памяти, так что учитываются только строки соединения, определенные в локальном файле app.config.

Смежные вопросы