Почему существует еще один раздел, называемый connectionStrings? Я всегда просто использовал appSettings, пока не заметил это в новом проекте:

<appSettings>
 <add key="SqlConnString" value="server=ABC;database=ABC;uid=A;pwd=B;"/>
</appSettings>

<connectionStrings>    
</connectionStrings>

Есть разница? Есть ли причина, по которой я должен использовать одно вместо другого?

5
Neil N 25 Авг 2009 в 22:06

2 ответа

Лучший ответ

Из документации:

Элемент connectionStrings определяет набор строк подключения к базе данных в виде пар имя / значение для приложений и функций ASP.NET.

В предыдущих версиях ASP.NET строки подключения хранились в файле appSettings. В ASP.NET 2.0 такие функции, как сеанс, членство, персонализация и диспетчер ролей, полагаются на строки подключения, которые хранятся в элементе connectionStrings. Вы также можете использовать элемент connectionStrings для хранения строк подключения для ваших собственных приложений.

Таким образом, единственное реальное отличие состоит в том, что встроенные функции ASP.NET 2.0 ожидают, что их строки подключения будут в области connectionStrings.

9
Eric Petroelje 25 Авг 2009 в 22:17
Почему нельзя было просто использовать настройки приложения для сеанса, членства, персонализации и ролей? Какие дополнительные функции предоставляют строки подключения, которых нет в настройках приложения?
 – 
Paul
30 Июн 2016 в 23:20

Если вы разделите строки подключения в раздел <connectionStrings>, вашу конфигурацию будет легче читать, поддерживать и обрабатывать.

Кроме того, кроме того, вы можете повысить свою безопасность, зашифровав только строки подключения, поскольку они обычно являются конфиденциальными элементами, и если они находятся в отдельном разделе, вы можете легко просто зашифровать этот один раздел и оставить остальную часть вашего app.config в виде обычного текста, чтобы вы могли легко обновлять и изменять настройки.

Марк

2
marc_s 25 Авг 2009 в 22:40
Вы можете так же легко зашифровать настройки приложения. Что касается разделения, я могу придумать множество различных способов организации настроек приложений, помимо строк подключения и настроек приложений. Я надеюсь, что решение MSFT ввести это разделение было больше, чем то, что упомянул Эрик. В противном случае это кажется произвольным.
 – 
Paul
30 Июн 2016 в 23:21
Вдобавок у этого решения сегодня есть странные побочные эффекты. В планах службы приложений Azure вы можете настроить параметры приложения (как параметры приложения, так и строки подключения). Однако конфигурация приложения не переопределяет параметры приложения app.config, в то время как строки подключения переопределяют строки подключения app.config. Из-за этого я теперь помещаю параметры строки, не связанной с подключением, в строки подключения просто для возможности переопределения строк подключения. Мне нелегко читать, поддерживать или обрабатывать это.
 – 
Paul
30 Июн 2016 в 23:29
- Настройки приложения, установленные на портале, ДОЛЖНЫ переопределять настройки приложения в файле web.config вашего веб-сайта или файле app.config вашего веб-сайта. Я использую это все время.
 – 
Tim
7 Июл 2016 в 17:19
Мне придется попробовать еще раз. Похоже, это не сработало для меня.
 – 
Paul
24 Июл 2016 в 08:01