Правила веб-конфигурации ASP.NET

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

Данные о конфигурации хранятся в XML-файлах с именем Web.config.

В этом разделе описываются основные параметры конфигурации, задаваемые в файле Web.config. В этом разделе содержатся следующие подразделы.

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

Компиляция

Чтобы приложение обрабатывало веб-запросы, платформе ASP.NET необходимо сначала скомпилировать приложение в одну или несколько сборок.

Параметры, необходимые ASP.NET для компиляции веб-приложений, настраиваются в разделе конфигурации compilation. Ниже приведены некоторые из атрибутов, которые можно задавать.

  • debug . На этапе разработки можно задать для атрибута debug значение true, чтобы создавались символы, необходимые во время отладки. В конце цикла разработки для атрибута debug следует задать значение false, чтобы оптимизировать производительность.

  • targetFramework . Этот атрибут указывает версию платформы .NET Framework, для которой предназначен веб-сайт. Этот атрибут должен включаться только для веб-сайтов, предназначенных для работы с платформой .NET Framework 4 или более поздних версий. В Visual Studio он служит для обеспечения использования в проекте только тех функций, которые доступны в целевой версии платформы. Дополнительные сведения см. в разделе Настройка веб-проектов ASP.NET для нескольких версий .NET Framework.

В следующем примере показано, как задать параметры конфигурации в разделе compilation. Эти параметры конфигурации задают, что должны создаваться символы отладки, необходимо заново компилировать измененные файлы и целевой версией является платформа .NET Framework 4.

<compilation debug="true" 
    optimizeCompilations="true" 
    targetFramework="4.0" />

Дополнительные сведения см. в разделе Элемент compilation (схема параметров ASP.NET). Дополнительные сведения о компиляции см. в разделе Общие сведения о компиляции в ASP.NET.

Настраиваемые ошибки

Можно настроить, как ASP.NET отображает сведения при возникновении необработанных ошибок во время выполнения веб-запроса. Это может потребоваться для предоставления дополнительных сведений пользователю или для настройки стандартных сообщений, отображаемых ASP.NET. Ниже приведены некоторые из атрибутов, которые можно задавать.

  • mode . Указывает, разрешено ли отображение настраиваемых сообщений об ошибках или отключены ли подробные сообщения об ошибках при просмотре на компьютере, отличном от самого сервера. Для атрибута mode можно задать следующие значения.

    • On . Указывает, что настраиваемые ошибки разрешены. Если атрибут не указан defaultRedirect, то пользователи видят универсальное сообщение об ошибке. Настраиваемые ошибки отображаются только для удаленных клиентов и на локальном узле.

    • Off . Указывает, что настраиваемые ошибки запрещены. Подробные сведения об ошибках ASP.NET отображаются только для удаленных клиентов и на локальном узле.

    • RemoteOnly . Указывает, что настраиваемые ошибки отображаются только для удаленных клиентов, а подробные сведения об ошибках ASP.NET отображаются на локальном узле. Это значение по умолчанию.

  • defaulRedirect . Указывает URL-адрес по умолчанию, на который будет перенаправлен браузер при возникновении ошибки. Если значение этого атрибута не указано, то вместо этого отображается универсальное сообщение об ошибке.

  • redirectMode . Задает значения для способа обработки URL-адреса исходного запроса при отображении пользовательской страницы ошибки.

В следующем примере показано, как настроить обработку ошибок. Эти параметры определяют, что настраиваемые ошибки отображаются только на удаленных клиентских компьютерах. При возникновении неизвестной ошибки отображается страница GenericErrorPage.htm. Страницы NoAccess.htm и FileNotFound.htm отображаются в том случае, если при запросе ресурсов,управляемых с помощью ASP.NET, происходят ошибки HTTP 403 (запрещено) и HTTP 404 (не найден).

<customErrors mode="RemoteOnly"     
    defaultRedirect="GenericErrorPage.htm">
  <error statusCode="403" redirect="NoAccess.htm" />
  <error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>

Дополнительные сведения см. в разделе Элемент customErrors (схема параметров ASP.NET).

Проверка подлинности и роли

ASP.NET может проверять подлинность учетных данных (таких как имя и пароль) пользователей веб-сайта. С помощью атрибута mode в разделе конфигурации authentication можно указать схему проверки подлинности для приложения. По умолчанию используется проверка подлинности Windows, при которой для проверки подлинности используются сведения об учетной записи пользователя Windows. Это может быть допустимым выбором для пользователей интрасети. В случае пользователей Интернета необходимо использовать другую схему, такую как проверка подлинности форм ASP.NET.

В следующем примере задается, что пользователи веб-сайта проходят проверку подлинности с помощью схемы проверки подлинности Windows:

<authentication mode="Windows"/>

Раздел конфигурации проверки подлинности предоставляет разнообразные способы настройки правил авторизации на основе ролей пользователей.

Дополнительные сведения см. в следующих разделах.

IIS 7 и ASP.NET Ajax

Раздел конфигурации system.webServer определяет параметры для служб IIS 7.0, применяемые к веб-приложению. Этот раздел требуется для запуска ASP.NET Ajax под управлением служб IIS 7. Он не является обязательным для более ранних версий IIS.

Дополнительные сведения см. в разделе Практическое руководство. Настройка раздела <system.webServer> для служб IIS 7.0.

Строки подключения

Раздел конфигурации connectionStrings указывает коллекцию строк подключения к базе данных. В следующем примере показано, как указать строку подключения. Эти параметры задают имя строки подключения, сервер, на котором размещена база данных, имя базы данных и учетные данные пользователя для доступа к базе данных.

<connectionStrings>
  <add name="Sales" 
       connectionString=
         "server=myserver;database=Products;
         uid=<user name>;pwd=<secure password>" />
</connectionStrings>

Дополнительные сведения см. в разделе Элемент connectionStrings (схема параметров ASP.NET). Дополнительные сведения о доступе к источникам данных см. в разделе Общие сведения о доступе к данным в ASP.NET.

При создании нового проекта веб-сайта или веб-приложения с помощью Visual Studio 2010 в новый проект включается файл Web.config. Параметры конфигурации можно создать или изменить одним из следующих способов.

  • Изменяя файлы конфигурации с помощью текстового редактора или редактора XML. Дополнительные сведения о синтаксисе см. в справочных подразделах, посвященных конфигурации, в разделах Параметры конфигурации ASP.NET и Общие параметры конфигурации (ASP.NET).

  • В IIS 6 с помощью оснастки консоли управления (MMC) ASP.NET. Оснастку консоли MMC можно запустить из диалогового окна свойств веб-сайта.

  • В IIS 7 с помощью редактора конфигураций служб IIS. Редактор можно запустить из диспетчера IIS Manager в разделе Компоненты сервера. Дополнительные сведения см. в документах IIS Configuration Editor на веб-сайте TechNet и Editing Collections with the IIS Configuration Editor на веб-сайте IIS. net.

  • С помощью средства администрирования веб-сайта в Visual Studio. Дополнительные сведения см. в разделе Средство администрирования веб-сайта ASP.NET.

Дополнительные сведения об изменении параметров конфигурации см. в разделе Изменение файлов конфигурации ASP.NET.

Параметры конфигурации можно также создавать и изменять программно с помощью интерфейса API конфигурирования ASP.NET. Дополнительные сведения см. в разделе Конфигурационный API-интерфейс настройки ASP.NET.

Все приложения платформы .NET Framework наследуют базовые параметры конфигурации и значения по умолчанию из файла Machine.config, который используется для параметров конфигурации, действующих на всем сервере. Эти параметры применяются ко всем приложениям платформы .NET Framework (включая приложения ASP.NET), выполняющимся на этом сервере.

В корне иерархии конфигурации ASP.NET находится файл Web.config, расположенный в том же каталоге, что и файл Machine.config. Корневой файл Web.config наследует все параметры из файла Machine.config. Он содержит параметры, применяемые ко всем приложениям ASP.NET, использующим определенную версию платформы .NET Framework.

Поскольку каждое приложение ASP.NET наследует параметры конфигурации из корневого файла Web.config, достаточно создать файлы Web.config только для параметров, которые требуется переопределить. Можно создать следующие файлы веб-конфигурации.

  • Файл Web.config для определенного приложения ASP.NET. Этот файл находится в корневом каталоге приложения и содержит параметры, применяемые к этому веб-приложению. Параметры из этого файла наследуются всеми вложенными каталогами приложения.

  • Файл Web.config для вложенного каталога приложения. Этот файл содержит параметры, относящиеся к этому вложенному подкаталогу и его дочерним подкаталогам (если таковые имеются).

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

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

Сведения о различиях между проектами веб-приложений и веб-сайтов см. в разделе Сравнение проектов веб-приложений с проектами веб-сайтов.

Показ: