Хранение строк подключения в web.config - PullRequest
2 голосов
/ 15 января 2010

Почему мы храним строки подключения в файле web.config? Каковы преимущества этого?

Ответы [ 7 ]

6 голосов
/ 15 января 2010

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

Вот хорошая статья, которая может дать вам подробную информацию: http://articles.sitepoint.com/article/web-config-file-demystified#

Для этого есть даже вики-страница :) (удивительно): http://en.wikipedia.org/wiki/Web.config

Если вы когда-либо переместите / измените другой формат базы данных, настройку строки подключения внутри файла web.config можно изменить в одном месте, а не копаться во всем приложении и искать его. Это также позволяет избежать необходимости перекомпилировать или создавать приложение для получения нового параметра строки подключения.

Если вам интересно, как получить доступ к информации из файла web.config, который можно найти здесь:

http://msdn.microsoft.com/en-us/library/4c2kcht0(VS.85).aspx

Там же есть пример кода.

3 голосов
/ 15 января 2010

Представьте, что у вас есть несколько классов, которые обращаются к вашей базе данных; Вы можете:

  1. Поместите строку подключения в каждый класс
  2. Создать константу для хранения этого значения
  3. Поместите его в свой файл конфигурации и сослаться на него

Они имеют следующие характеристики:

  1. Каждый раз, когда изменяется строка подключения, например, при переходе от разработки к производственной среде, вам нужно будет менять везде;
  2. Используя константу, вам просто нужно изменить одно место. Но в этом случае, когда ваша строка должна быть изменена, вам нужно перекомпилировать ее.
  3. То же, что и выше, без этой перекомпиляции. Вы можете разработать свое приложение, и другие люди установят вам соединение с этой базой данных

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

2 голосов
/ 15 января 2010

Причина № 1
Как все говорят, наличие строки подключения в web.config позволяет легко обновлять / изменять по мере необходимости. Он становится единым источником, в котором аргументы могут быть легко изменены.

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

www.mydomain.com

кто-то не может нажать http://www.mydomain.com/web.config и очистить все ваши конфиденциальные настройки, пароли и т. Д.

(Отметим, что IIS не будет обслуживать файлы в каталоге App_Code ни пользователю, поэтому файл web.config не уникален в этом отношении.)

Причина № 3
ASP.NET автоматически обнаруживает изменения в файлах конфигурации и немедленно применяет новые настройки.

Подробнее ..
MSDN обсуждает систему конфигурации ASP.NET по адресу

http://msdn.microsoft.com/en-us/library/aa719558%28VS.71%29.aspx

1 голос
/ 15 января 2010

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

0 голосов
/ 15 января 2010

Вам не нужно перестраивать приложение, если изменяется строка подключения. Администратор может внести изменения, и код остается прежним.

0 голосов
/ 15 января 2010

Позволяет настроить строку подключения кем-то, кто ведет сайт.

0 голосов
/ 15 января 2010

Вы можете ссылаться на них, используя ConfigurationManager через свойство ConnectionStrings.

http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.connectionstrings.aspx

...