Это не просто важный, это обязательный файл для работы любого приложения. Web.config представляет собой файл, содержащий разметку формата XML. Другими словами – это обычный XML-документ. Все настройки логически разделены на группы. Каждая группа отвечает за настройку какой-то части приложения, либо за настройку веб-сервера, который обслуживает наше приложение. Уже внутри групп расположены отдельные секции, представляющие ту или иную настройку.
Преимущества использования файла Web.config:
- централизованное место для всех настроек в приложении
- приложение можно настроить максимально гибко и полно
- возможность описать собственные настройки, характерные для текущего проекта
- позволяет избежать проблемы жестко закодированных параметров в коде приложения
- при изменении настроек нет необходимости перекомпилировать код
- файл в формате стандарта XML
Чаще всего, при разработке типовых веб-приложений разработчики используют только один файл Web.config, расположенный на уровне текущего проекта. Однако этот файл является лишь частью целой иерархии конфигурационных файлов, которые использует в своей работе среда ASP.NET. Давайте посмотрим на всю цепочку файлов, составляющих эту иерархию:
Machine.config – самый первый и главный файл в иерархии. В нем определены основные настройки для среды ASP.NET, которые будут использоваться на данном физическом сервере.
Web.config – базовая версия этого файла. Здесь описаны значения по умолчанию для многих компонентов ASP.NET. Этот файл дополняет и расширяет файл machine.config, он располагается в той же директории.
ApplicationHost.config – в этом файле определены настройки а также значения по умолчанию для веб-сервера IIS (IIS Express), на котором будут работать все веб-приложения.
Web.config – версия файла для сайта IIS. В данном случае под сайтом понимается иерархия директорий, которая может включать в себя множество веб-приложений. Для всех приложений в конкретном сайте можно определить общие настройки через этот файл.
Web.config – версия файла для настройки конкретного веб-приложения. Именно этот файл чаще всего используется программистами в процессе работы.
Web.config – версия файла, расположенная в поддиректории текущего проекта. Здесь описаны настройки, актуальные для данной части веб-приложения. Например, файл web.config в папке Views определяет по умолчанию движок Razor для работы с представлениями.
Стандартное расположение файлов Machine.config и Web.config:
Стандартное расположение файла ApplicationHost.config:
Таким образом, общая конфигурационная модель, которая используется для правильной работы не только нашего отдельного веб-приложения, но и всей платформы ASP.NET на сервере, а также самого сервера, состоит из нескольких дополняющих друг друга конфигурационных файлов. Группа этих файлов представляет собой некую иерархию, где на верхнем уровне определены базовые и самые основные настройки сервера и среды ASP.NET, а вниз по цепочке большинство (не все) этих настроек можно переопределить либо расширить для правильной работы отдельных веб-приложений.
Благодаря такой системе в файле Web.config уровня приложения записано лишь несколько десятков строк кода, подавляющее большинство настроек определено уровнями выше по иерархии.
В подавляющем большинстве случаев, при разработке типовых ASP.NET приложений, нет необходимости менять стандартные настройки config-файлов в иерархии вплоть до Web.config файла уровня приложения. Именно через этот файл происходит полная настройка приложения.
В момент запуска приложения все эти настройки соединяются воедино и кэшируются для большего быстродействия. Далее в процессе работы система отслеживает состояние файла Web.config на случай его изменения. Если изменения произошли, и конфигурационный файл был обновлен, тогда сервер дожидается корректной отработки действующих http-запросов, и веб-приложение перезагружается уже в новой конфигурации.
Ну и также замечу, что почти вся информация, которую мы сейчас узнали о конфигурационных файлах .config, актуальна и для других типов приложений, например, для приложений консольного типа. Только там конфигурационный файл для настройки приложения будет называться App.config. Поэтому если вы разрабатываете приложения другого типа, это информация вам также будет полезна.
Во второй части урока мы посмотрим, как работать с файлом Web.config, изменять настройки приложения, получать доступ к настройкам, чтобы использовать их где-то в коде приложения, а также научимся придумывать и добавлять свои собственные настройки.