Iis web config: Файл web.config | Microsoft Learn
Содержание
Файл web.config | Microsoft Learn
-
Статья -
-
web.config
— это файл, который считывается службами IIS и модулем ASP.NET Core для настройки приложения, размещенного в службах IIS.
Расположение файла
web.config
Для корректной настройки модуля ASP.NET Core необходимо наличие файла web.config
в корневой папке содержимого развертываемого приложения (как правило, это основной путь приложения). Это расположение соответствует физическому пути веб-сайта, указанному в службах IIS. Файл web.config
требуется в корне приложения, чтобы разрешить публикацию нескольких приложений с помощью веб-развертывания.
По физическому пути приложения находятся файлы с конфиденциальной информацией, например, {ASSEMBLY}.runtimeconfig.json
, {ASSEMBLY}.xml
(комментарии к XML-документации) и {ASSEMBLY}.deps.json
, где заполнитель {ASSEMBLY}
представляет собой имя сборки. Когда файл web.config
присутствует и сайт запускается нормально, службы IIS не обрабатывают запросы к этим файлам. Если файл web.config
отсутствует, неправильно именован или не может настроить нормальный запуск сайта, службы IIS могут свободно передавать содержимое этих конфиденциальных файлов.
Файл web.config
должен постоянно присутствовать в развертывании, а также иметь правильное имя и возможность настроить сайт для нормального запуска. Никогда не удаляйте файл web.config
из развертывания в рабочей среде.
Если в проекте нет файла web.config
, он создается с соответствующими аргументами processPath
и arguments
для настройки модуля ASP. NET Core и переносится в опубликованные выходные данные.
Если в проекте есть файл web.config
, он преобразуется с соответствующими аргументами processPath
и arguments
для настройки модуля ASP.NET Core и переносится в опубликованные выходные данные. Преобразование не изменяет параметры конфигурации служб IIS, включенные в файл.
Файл web.config
может содержать дополнительные параметры конфигурации IIS, управляющие активными модулями IIS. Сведения о модулях IIS, которые могут обрабатывать запросы к приложениям ASP.NET Core, см. в статье Модули IIS.
Создание, преобразование и публикация файла web.config
обрабатываются целевым объектом MSBuild (_TransformWebConfig
) при публикации проекта. Этот целевой объект присутствует в целевых веб-пакетах SDK (Microsoft.NET.Sdk.Web
). Пакет SDK задается в начале файла проекта:
<Project Sdk="Microsoft.NET.Sdk.Web">
Чтобы веб-пакет SDK не преобразовывал файл web. config
, используйте свойство <IsTransformWebConfigDisabled>
в файле проекта:
<PropertyGroup> <IsTransformWebConfigDisabled>true</IsTransformWebConfigDisabled> </PropertyGroup>
Если пакет SDK не преобразует файл, аргументы processPath
и arguments
нужно задать вручную. Дополнительные сведения см. в разделе Модуль ASP.NET Core для IIS.
Настройка модуля ASP.NET Core с помощью
web.config
Модуль ASP.NET Core настроен с помощью раздела aspNetCore
узла system.webServer
файла web.config
на веб-сайте.
Следующий файл web.config
публикуется для зависимого от платформы развертывания и настраивает модуль ASP.NET Core для обработки запросов к веб-сайту.
<?xml version="1.0" encoding="utf-8"?> <configuration> <location path="." inheritInChildApplications="false"> <system.webServer> <handlers> <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" /> </handlers> <aspNetCore processPath="dotnet" arguments=". \MyApp.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" /> </system.webServer> </location> </configuration>
Следующий файл web.config
опубликован для автономного развертывания.
<?xml version="1.0" encoding="utf-8"?> <configuration> <location path="." inheritInChildApplications="false"> <system.webServer> <handlers> <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" /> </handlers> <aspNetCore processPath=".\MyApp.exe" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" /> </system.webServer> </location> </configuration>
Значение false
свойства InheritInChildApplications указывает, что параметры, заданные в элементе <location>
, не наследуются приложениями, которые находятся во вложенном каталоге приложения.
Когда приложение развернуто в службе приложений Azure, путь stdoutLogFile
задан как \\?\%home%\LogFiles\stdout
. Путь сохраняет журналы stdout в папке LogFiles
, расположение которой автоматически создается службой.
Сведения о конфигурации дочерних приложений IIS см. в разделе Расширенные конфигурации.
Атрибуты элемента
aspNetCore
attribute | Описание | Значение по умолчанию |
---|---|---|
arguments | Необязательный строковый атрибут. Аргументы для исполняемого файла, указанного в атрибуте | |
disableStartUpErrorPage | Дополнительный логический атрибут. Если значение равно true, страница 502.5 — ошибка процесса подавляется и страница в файле | false |
forwardWindowsAuthToken | Дополнительный логический атрибут. Если значение равно true, маркер безопасности отправляется дочернему процессу, прослушивающему порт | true |
hostingModel | Необязательный строковый атрибут. Указывает модель размещения — внутри процесса ( | OutOfProcess /outofprocess при отсутствии |
processesPerApplication | Необязательный целочисленный атрибут. Указывает число экземпляров процесса, заданное в параметре †Для внутрипроцессного размещения установлено ограничение Параметр | По умолчанию: 1 Минимум: 1 Максимальное значение: 100 † |
processPath | Обязательный строковый атрибут. Путь к исполняемому файлу, который запускает процесс прослушивания HTTP-запросов. Поддерживаются относительные пути. Если путь начинается с | |
rapidFailsPerMinute | Необязательный целочисленный атрибут. Указывает количество сбоев за минуту, которыми может завершиться процесс, указанный в Не поддерживается для внутрипроцессного размещения. | По умолчанию: 10 Минимум: 0 Максимум: 100 |
requestTimeout | Необязательный атрибут timespan. Указывает продолжительность, на протяжении которой модуль ASP.NET Core ожидает ответа от процесса, прослушивающего порт %ASPNETCORE_PORT%. В версиях модуля ASP.NET Core, поставляемых с выпуском ASP.NET Core 2.1 или новее, атрибут Не применяется к внутрипроцессному размещению. Для внутрипроцессного размещения модуль ожидает, пока приложение не обработает запрос. Допустимые значения для сегментов минут и секунд в строках находятся в диапазоне 0–59. Значение | По умолчанию: 00:02:00 Минимум: 00:00:00 Максимум: 360:00:00 |
shutdownTimeLimit | Необязательный целочисленный атрибут. Длительность ожидания модуля в секундах, пока произойдет правильное выключение исполняемого файла при обнаружении файла | По умолчанию: 10 Минимум: 0 Максимум: 600 |
startupTimeLimit | Необязательный целочисленный атрибут. Время в секундах, которое модуль ожидает, пока запустится процесс прослушивания порта исполняемого файла. Если этот предел превышен, модуль завершает процесс. Внутрипроцессное размещение. Процесс не перезапускается, и параметр Размещение вне процесса. Модуль пытается перезапустить процесс при получении нового запроса и будет продолжать пытаться перезапустить процесс для последующих входящих запросов, если не удается запустить приложение определенное в атрибуте Значение 0 (ноль) не считается бесконечным временем ожидания. | По умолчанию: 120 Минимум: 0 Максимум: 3600 |
stdoutLogEnabled | Дополнительный логический атрибут. Если значение равно true, | false |
stdoutLogFile | Необязательный строковый атрибут. Указывает относительный или абсолютный путь к файлу, для которого регистрируются | aspnetcore-stdout |
Настройка переменных среды
Переменные среды для процесса можно указать в атрибуте processPath
. Укажите переменную среды с дочерним элементом <environmentVariable>
элемента коллекции <environmentVariables>
. Переменные среды, установленные в этом разделе, имеют приоритет над переменными системной среды.
В приведенном ниже примере устанавливаются две переменные среды в web.config
. ASPNETCORE_ENVIRONMENT
настраивает среду приложения для Development
. Разработчик может временно задать это значение в файле web.config
, чтобы принудительно загрузить Страницу исключений для разработчиков при отладке исключения приложения. CONFIG_DIR
— пример пользовательской переменной среды, где разработчик написал код, который считывает значение при запуске, чтобы сформировать путь для загрузки файла конфигурации приложения.
<aspNetCore processPath="dotnet" arguments=".\MyApp.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="inprocess"> <environmentVariables> <environmentVariable name="ASPNETCORE_ENVIRONMENT" value="Development" /> <environmentVariable name="CONFIG_DIR" value="f:\application_config" /> </environmentVariables> </aspNetCore>
Примечание
Вместо установки среды напрямую в web.config
можно включить свойство <EnvironmentName>
в профиль публикации (.pubxml
) или файл проекта. При этом подходе во время публикации проекта среда задается в файле web.config
:
<PropertyGroup> <EnvironmentName>Development</EnvironmentName> </PropertyGroup>
Предупреждение
Установите только переменную среды ASPNETCORE_ENVIRONMENT
для Development
на серверах промежуточных процессов и тестирования, которые недоступны для ненадежных сетей, таких как Интернет.
Настройка служб IIS с помощью
web.config
Конфигурация IIS зависит от <system.webServer>
раздела web.config
для сценариев IIS, предназначенных для работы приложений ASP.NET Core с помощью модуля ASP.NET Core. Например, конфигурация IIS работает для динамического сжатия. Если в службах IIS на уровне сервера настроено динамическое сжатие, элемент <urlCompression>
в файле web.config
приложения может отключить это сжатие для приложения ASP.NET Core.
Дополнительные сведения см. в следующих разделах:
- Справочник по настройке для
<system.webServer>
- Модуль ASP.NET Core (ANCM) для IIS
- Модули IIS с ASP.NET Core
Сведения о настройке переменных среды для отдельных приложений, выполняющихся в изолированных пулах приложений (такая возможность поддерживается в службах IIS, начиная с версии 10.0), см. в разделе Команда AppCmd.exe
статьи Переменные среды <environmentVariables>
в справочной документации по службам IIS.
Разделы конфигурации
web.config
Разделы конфигурации приложений ASP.NET 4.x в файле web.config
не используются для конфигурации приложений ASP.NET Core.
<system.web>
<appSettings>
<connectionStrings>
<location>
Для настройки приложений ASP.NET Core используются другие поставщики конфигураций. Дополнительные сведения см. в разделе Конфигурация.
Преобразование web.config
Если вам нужно преобразовать web.config
при публикации, см. статью Преобразование web.config. Возможно, вам потребуется выполнить преобразование web.config
при публикации, чтобы задать переменные среды на основе конфигурации, профиля или среды.
Дополнительные ресурсы
- Службы IIS <system.webServer>
- Модули IIS с ASP.NET Core
- Преобразование web.config
Настройка веб-сервера из набора IIS, web.
config, заголовки HTTP: ilyachalov — LiveJournal
Я уже писал несколько постов про то, как начал пользоваться (и пользуюсь до сих пор) локальным веб-сервером (как я понимаю, он может быть не только локальным) из набора серверов «IIS»:
1. JavaScript: локальный веб-сервер из набора IIS
2. JavaScript: локальный веб-сервер и кэш браузера
3. JavaScript: локальный веб-сервер и favicon.ico
Напомню, «IIS» (расшифровывается как «Internet Information Services») — это набор серверов для нескольких служб Интернета от компании «Microsoft». Набор серверов «IIS» включен в состав операционной системы «Windows 10 Pro», которая установлена на моём компьютере. Поэтому, собственно, я и стал пользоваться веб-сервером из этого набора. (Актуальная версия «IIS» — 10.0) Тут подробнее:
https://ru.wikipedia.org/wiki/Internet_Information_Services
https://docs.microsoft.com/en-gb/iis (документация на английском)
В предыдущем посте я писал, как начал пользоваться инструментом разработчика «Issues» в браузере «Microsoft Edge» на движке «Chromium».
И этот самый инструмент «Issues» выдал мне по поводу моей тестовой HTML-страницы следующее предупреждение (по-английски «Warning»):
‘content-type’ header charset value should be ‘utf-8’
Вернее, он выдал мне три таких предупреждения — одно по поводу моей HTML-страницы index.html
, а еще два — по поводу двух файлов, подключенных к моей HTML-странице — файла style.css
с определениями стилей на языке CSS и файла myscript.js
со скриптом на языке JavaScript.
О чем идет речь в предупреждении? Обратим внимание на слово «header» (по-русски «заголовок») в тексте предупреждения. Что это за заголовок? Как оказалось, речь тут идет про так называемые «заголовки HTTP»:
https://ru.wikipedia.org/wiki/Заголовки_HTTP
https://developer.mozilla.org/ru/docs/Web/HTTP/Headers
Казалось бы, для HTML-страницы заголовки HTTP можно настраивать с помощью HTML-элемента meta
(об этом сказано на вышеуказанной странице википедии). Например, в данном случае на первый взгляд кажется, что нужно вставить в заголовочную часть HTML-страницы следующее:
<meta http-equiv="content-type" content="text/html; charset=utf-8">
Однако, это в моём браузере не работает (кодировку HTML-страницы указывает, но на заголовок HTTP, отсылаемый веб-сервером из набора «IIS», не влияет). Почему? Во-первых, значение "content-type"
атрибута http-equiv
HTML-элемента meta
считается устаревшим (об этом сказано, например, тут), вместо этого для указания кодировки HTML-страницы рекомендуют использовать следующее:
<meta charset="utf-8">
У меня на тестовой HTML-странице уже указан этот короткий вариант, поэтому дополнительное указание HTML-элемента meta
с атрибутом http-equiv="content-type"
не требуется (будет считаться дублированием короткого варианта и об этом инструмент разработчика «Issues» браузера выдаст отдельное предупреждение).
Во-вторых (что более важно), как я понимаю (а я не специалист в этом вопросе, можно даже сказать, «чайник») веб-сервер из набора «IIS» вообще не учитывает, что там указано в коде HTML-страницы (возможно, веб-сервер можно как-то настроить, чтобы он учитывал HTML-элементы meta
в коде отправляемой HTML-страницы, но я про такое не знаю).
Таким образом, очевидно, что для исправления вышеуказанного предупреждения от инструмента разработчика «Issues» браузера требуется настройка соответствующего заголовка HTTP, формируемого веб-сервером при отправке HTML-страницы (а также при отправке файлов, подключенных к этой HTML-странице).
Вообще, диалог между веб-сервером и браузером может служить удачной и достаточно простой иллюстрацией работы компьютерных сетей с архитектурой «клиент-сервер». В этом случае веб-сервер, соответственно, выполняет роль «сервера», а браузер выполняет роль «клиента». Оба конца этого диалога (сервер и клиент) являются компьютерными программами. Хотя часто сервером еще называют компьютер, на котором установлена программа (или несколько программ), выполняющая роль «сервера». Это создает некоторую путаницу в головах людей, изучающих компьютерные сети. Подробнее:
https://ru.wikipedia.org/wiki/Клиент_—_сервер
Если интересна эта тема, то, чтобы получить начальное представление о работе компьютерных сетей, я рекомендую прочесть первую главу знаменитой книги Эндрю Таненбаума, про которую у меня есть отдельный пост.
В рассматриваемом здесь случае веб-сервер из набора «IIS» и мой браузер (клиент) находятся на одном и том же моём компьютере, поэтому я здесь часто называю веб-сервер локальным веб-сервером. Это удобно для изучения, потому что оба участника сетевого диалога находятся под моим контролем, доступны для управления и экспериментов.
Итак, как произвести нужную мне настройку веб-сервера из набора «IIS»? Это можно сделать минимум двумя способами: 1) внести исправления напрямую в файл, в котором хранятся настройки веб-сервера; 2) открыть графический интерфейс веб-сервера и внести изменения в настройки веб-сервера через него, в результате чего эти настройки попадут в тот же файл, что при первом способе. Как я понимаю, результат при использовании любого из этих способов будет одинаковый.
Файлы настроек веб-сервера (как я понял) бывают разными: есть файлы настроек, которые действуют на все файлы, выдаваемые веб-сервером, а есть файлы настроек, которые действуют только на часть файлов, выдаваемых веб-сервером (например, только на файлы одного веб-сайта или на файлы, находящиеся в одном каталоге). Здесь я рассмотрю только последний случай, а именно я рассмотрю файл настроек веб-сервера, который называется web.config
. Этот файл настроек действует только на файлы каталога, в котором он находится, в том числе на файлы, находящиеся во вложенных в текущий каталогах. Подробнее:
https://docs.microsoft.com/en-us/iis/manage/managing-your-configuration-settings/delegating-configuration-to-webconfig-files
Что из себя представляет этот файл? Это текстовый файл, в котором с помощью разметки на языке XML описаны настройки веб-сервера. Правила написания этой разметки можно узнать в соответствующем справочнике:
https://docs. microsoft.com/en-us/iis/configuration/
Файлы моего локального веб-сайта находятся в следующем каталоге (я про это рассказывал в отдельном посте):
C:\inetpub\wwwroot\
В этом каталоге изначально нет файла web.config
, что значит, что на файлы в этом каталоге распространяются общие настройки веб-сервера.
Я поместил в этот каталог файл web.config
со следующим содержанием:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <staticContent> <mimeMap fileExtension=".html" mimeType="text/html; charset=utf-8" /> <mimeMap fileExtension=".css" mimeType="text/css; charset=utf-8" /> <mimeMap fileExtension=".js" mimeType="application/javascript; charset=utf-8" /> </staticContent> </system.webServer> </configuration>
Затем открыл в своём браузере адрес, который соответствует указанному выше каталогу:
http://localhost/index. html
и неожиданно получил сообщение об ошибке «HTTP 500.19 — Internal Server Error».
Почему произошла эта ошибка? Дело в том, что в настройках веб-сервера уже есть определения для трех указанных типов файлов (с расширениями .html
, .css
, .js
), а мой файл настроек web.config
пытается добавить определения для этих же расширений файлов. Правила описания настроек веб-сервера запрещают определения mimeMap
с одинаковыми атрибутами fileExtension
.
Я этого не знал, поэтому решил попытаться внести нужные мне настройки через графический интерфейс веб-сервера из набора «IIS». Как открыть этот графический интерфейс? Как обычно, в операционной системе «Windows 10 Pro» это можно сделать кучей способов. Я открываю поиск (либо кликнув по иконке с увеличительным стеклом справа от кнопки «Пуск», либо нажав комбинацию клавиш Win+S) и набираю там «Диспетчер служб IIS», а затем открываю этот самый диспетчер.
В открывшемся окне «Диспетчера служб IIS» слева будет часть окна, озаглавленная «Подключения», и в ней будет отображено дерево подключений. В корне этого дерева у меня находится название моего компьютера. Если корень «развернуть», то там у меня открывается два пункта: «Пулы приложений» и «сайты». Я «развернул» пункт «сайты» и в нем оказался единственный сайт с названием «Default Web Site» (этот сайт, как я понимаю, был создан при включении набора «IIS», которое я описывал в отдельном посте). Это и есть сайт, который соответствует каталогу C:\inetpub\wwwroot\
(по умолчанию).
Я выбрал этот сайт, кликнув на него мышкой. После этого в центральной части окна и в правой части окна доступны возможные действия и настройки.
В центральной части окна диспетчера я кликнул мышкой на пункт «Типы MIME». Центральная часть окна диспетчера сменилась на окно выбранной функции. Но возникла ошибка из-за ошибки в написанном мной (см. выше) файле web.config
. Я удалил этот файл и снова открыл пункт «Типы MIME». Теперь в центральной части окна диспетчера (теперь уже без ошибки) открылся большой список разнообразных расширений файлов.
Я нашел в этом списке три нужных мне расширения (.html
, .css
, .js
) и добавил к определению каждого из этих расширений в графе «Тип MIME» текст ; charset=utf-8
.
После этого я заглянул в каталог моего сайта C:\inetpub\wwwroot\
и увидел, что там появился файл web.config
, по-видимому, созданный диспетчером служб «IIS» в ответ на мои вышеописанные действия. Вот содержимое этого файла (я пометил красным цветом отличия от файла, написанного мной ранее):
<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <staticContent> <remove fileExtension=".js" /> <remove fileExtension=".css" /> <remove fileExtension=".html" /> <mimeMap fileExtension=".html" mimeType="text/html; charset=utf-8" /> <mimeMap fileExtension=". css" mimeType="text/css; charset=utf-8" /> <mimeMap fileExtension=".js" mimeType="application/javascript; charset=utf-8" /> </staticContent> </system.webServer> </configuration>
То есть, если в списке расширений файлов, обрабатываемых веб-сервером, уже есть расширения, настройку обработки которых нужно изменить, то сначала удаляем «старые» определения, а затем добавляем «новые». Таким образом избегаем появления в списке расширений файлов дубликатов.
После этого я снова открыл в браузере адрес http://localhost/index.html
и теперь HTML-страница загрузилась без ошибок сервера.
Обсуждаемое предупреждение инструмента разработчика «Issues» исчезло.
Кстати, полученные браузером от веб-сервера заголовки HTTP можно просмотреть в инструменте разработчика «Network», кликнув мышкой на название конкретного полученного от веб-сервера файла в списке полученных файлов. Я там посмотрел и увидел, что в полученных от веб-сервера заголовках HTTP присутствуют изменения, которые я настроил вышеописанным файлом web. config
.
В принципе, мой локальный сайт работал корректно и без этих настроек. Поэтому не уверен, что я оставлю эти настройки. Впрочем, я всегда могу их легко откатить, удалив вышеописанный файл web.config
из каталога своего веб-сайта. Необходимость этих настроек описана по следующей ссылке:
https://webhint.io/docs/user-guide/hints/hint-content-type/
файл web.config | Microsoft Learn
- Статья
web.config
— это файл, который считывается IIS и основным модулем ASP.NET для настройки приложения, размещенного в IIS.
web.config
расположение файла
Чтобы правильно настроить основной модуль ASP.NET, файл web.config
должен присутствовать в корневом пути содержимого (обычно это базовый путь приложения) развернутого приложения. Это то же место, что и физический путь веб-сайта, предоставленный IIS. Файл web.config
требуется в корне приложения, чтобы разрешить публикацию нескольких приложений с помощью веб-развертывания.
На физическом пути приложения существуют конфиденциальные файлы, например {ASSEMBLY}.runtimeconfig.json
, {ASSEMBLY}.xml
(комментарии XML-документации) и {ASSEMBLY}.deps.json
, где заполнитель {ASSEMBLY}
— это имя сборки. Когда файл web.config
присутствует и сайт запускается нормально, IIS не обслуживает эти конфиденциальные файлы, если они запрашиваются. Если файл web.config
отсутствует, имеет неправильное имя или не может настроить сайт для нормального запуска, IIS может предоставлять конфиденциальные файлы публично.
Файл web.config
должен постоянно присутствовать в развертывании, иметь правильное имя и иметь возможность настроить сайт для нормального запуска. Никогда не удаляйте файл web.config
из рабочего развертывания.
Если файл web.config
отсутствует в проекте, файл создается с правильными аргументами processPath
и
для настройки модуля ASP.NET Core и перемещается в опубликованные выходные данные.
Если в проекте присутствует файл web.config
, файл преобразуется с правильным processPath
и аргументами
для настройки основного модуля ASP.NET и перемещается в опубликованные выходные данные. Преобразование не изменяет параметры конфигурации IIS в файле.
Файл web.config
может содержать дополнительные параметры конфигурации IIS, управляющие активными модулями IIS. Сведения о модулях IIS, способных обрабатывать запросы с приложениями ASP.NET Core, см. в разделе о модулях IIS.
Создание, преобразование и публикация файла web.config
обрабатывается целью MSBuild ( _TransformWebConfig
) при публикации проекта. Эта цель присутствует в целях Web SDK ( Microsoft.NET.Sdk.Web
). SDK устанавливается в верхней части файла проекта:
Чтобы предотвратить преобразование Web SDK файла web.config
, используйте свойство
в файле проекта:
true
При отключении Web SDK от преобразования файла processPath
и аргументы
должны быть установлены вручную разработчиком. Дополнительные сведения см. в разделе Основной модуль ASP.NET (ANCM) для IIS.
Конфигурация основного модуля ASP.NET с
web.config
Основной модуль ASP.NET настраивается с помощью раздела aspNetCore
узла system.webServer
в файле web.config
сайта.
Следующий файл web.config
публикуется для зависимого от платформы развертывания и настраивает основной модуль ASP. NET для обработки запросов сайта:
<конфигурация> <местоположение = "." inheritInChildApplications="false"> <системный.веб-сервер> <обработчики>
Для автономного развертывания опубликован следующий файл web.config
:
<конфигурация> <местоположение = "." inheritInChildApplications="false"> <системный.веб-сервер> <обработчики>\MyApp.exe" stdoutLogEnabled = "ложь" stdoutLogFile=".\журналы\stdout" hostingModel="в процессе" />
Для свойства InheritInChildApplications задано значение false
, чтобы указать, что параметры, указанные в элементе
, не наследуются приложениями, которые находятся в подкаталоге приложения.
Когда приложение развертывается в службе приложений Azure, для пути stdoutLogFile
задается значение \\?\%home%\LogFiles\stdout
. Путь сохраняет журналы стандартного вывода в папку LogFiles
, которая автоматически создается службой.
Сведения о настройке подприложения IIS см. в разделе Расширенная настройка.
Атрибуты элемента
aspNetCore
Атрибут | Описание | По умолчанию |
---|---|---|
аргументы | Необязательный строковый атрибут. Аргументы для исполняемого файла, указанного в | |
отключитьStartUpErrorPage | Необязательный логический атрибут. Если true, страница 502.5 — Ошибка процесса подавляется, а кодовая страница состояния 502, настроенная в | ложный |
впередWindowsAuthToken | Необязательный логический атрибут. Если значение равно true, токен пересылается дочернему процессу, прослушивающему | правда |
хостингМодель | Необязательный строковый атрибут. Определяет модель размещения как внутрипроцессную ( | OutOfProcess / outofprocess если нет |
процессов на приложение | Необязательный целочисленный атрибут. Указывает количество экземпляров процесса, указанного в параметре †Для внутрипроцессного хостинга значение ограничено Установка | По умолчанию: 1 Мин.: 1 Макс.: 100 † |
путь процесса | Обязательный строковый атрибут. Путь к исполняемому файлу, запускающему процесс, прослушивающий HTTP-запросы. Относительные пути поддерживаются. Если путь начинается с | |
RapidFailsPerMinute | Необязательный целочисленный атрибут. Указывает, сколько раз в минуту процесс, указанный в Не поддерживается внутрипроцессным размещением. | По умолчанию: 10 Мин.: 0 Макс.: 100 |
время ожидания запроса | Необязательный атрибут временного интервала. Задает время, в течение которого основной модуль ASP.NET ожидает ответа от процесса, прослушивающего %ASPNETCORE_PORT%. В версиях модуля ASP.NET Core, поставляемых с выпуском ASP.NET Core 2.1 или более поздней версии, Не применяется к внутрипроцессному хостингу. Для внутрипроцессного хостинга модуль ожидает, пока приложение обработает запрос. Допустимые значения минут и секунд сегментов строки находятся в диапазоне 0-59. Использование | По умолчанию: 00:02:00 Мин.: 00:00:00 Макс.: 360:00:00 |
выключениеTimeLimit | Необязательный целочисленный атрибут. Продолжительность в секундах, в течение которой модуль ожидает корректного завершения работы исполняемого файла при обнаружении файла | По умолчанию: 10 Мин.: 0 Макс.: 600 |
StartupTimeLimit | Необязательный целочисленный атрибут. Продолжительность в секундах, в течение которой модуль ожидает запуска исполняемым файлом процесса прослушивания порта. Если это время превышено, модуль убивает процесс. При размещении в процессе : процесс , а не перезапущен, и использует ли , а не настройку При размещении вне процесса : модуль пытается перезапустить процесс при получении нового запроса и продолжает попытки перезапустить процесс при последующих входящих запросах, если приложение не запускается Значение 0 (ноль) означает, что , а не , считается бесконечным временем ожидания. | По умолчанию: 120 Мин.: 0 Макс.: 3600 |
stdoutLogEnabled | Необязательный логический атрибут. Если true, | ложный |
stdoutLogFile | Необязательный строковый атрибут. Указывает относительный или абсолютный путь к файлу, для которого регистрируются | aspnetcore-stdout |
Установить переменные среды
Переменные среды можно указать для процесса в атрибут processPath
. Укажите переменную среды с дочерним элементом
элемента коллекции
. Переменные среды, установленные в этом разделе, имеют приоритет над системными переменными среды.
В следующем примере две переменные среды задаются в web.config
. ASPNETCORE_ENVIRONMENT
настраивает среду приложения на Development
. Разработчик может временно установить это значение в файл web.config
, чтобы заставить страницу исключений разработчика загружаться при отладке исключения приложения. CONFIG_DIR
— это пример определяемой пользователем переменной среды, где разработчик написал код, который считывает значение при запуске, чтобы сформировать путь для загрузки файла конфигурации приложения.
<переменные среды>
Примечание
Альтернативой настройке среды непосредственно в web. config
является включение свойства
в профиль публикации ( .pubxml
) или файл проекта. Этот подход устанавливает среду в web.config
при публикации проекта:
Разработка
Предупреждение
Установите только ASPNETCORE_ENVIRONMENT
переменная среды для Development
на промежуточных и тестовых серверах, недоступных для ненадежных сетей, таких как Интернет.
Конфигурация IIS с
web.config
На конфигурацию IIS влияет раздел
файла web.config
для сценариев IIS, которые работают для приложений ASP.NET Core с ASP.NET Основной модуль. Например, конфигурация IIS поддерживает динамическое сжатие. Если IIS настроен на уровне сервера для использования динамического сжатия, Элемент
в файле web. config
приложения может отключить его для приложения ASP.NET Core.
Дополнительные сведения см. в следующих разделах:
- Справочник по конфигурации для
- Базовый модуль ASP.NET (ANCM) для IIS
- модулей IIS с ASP.NET Core
Чтобы установить переменные среды для отдельных приложений, работающих в изолированных пулах приложений (поддерживается для IIS 10.0 или более поздней версии), см. AppCmd.exe
команда раздела Переменные среды
в справочной документации IIS.
Разделы конфигурации
web.config
Разделы конфигурации приложений ASP.NET 4.x в web.config
не используются приложениями ASP.NET Core для настройки:
-
-
<Настройки приложения>
-
-
<местоположение>
Приложения ASP. NET Core настраиваются с помощью других поставщиков конфигурации. Дополнительные сведения см. в разделе Конфигурация.
Преобразование web.config
Если вам нужно преобразовать web.config
при публикации, см. раздел Преобразование web.config. Вам может потребоваться преобразовать web.config
при публикации, чтобы установить переменные среды на основе конфигурации, профиля или среды.
Дополнительные ресурсы
- IIS <системный.веб-сервер>
- модулей IIS с ASP.NET Core
- Преобразование web.config
| Microsoft Узнайте
Редактировать
Твиттер
Фейсбук
Электронная почта
- Статья
Обзор
Элемент
указывает корневой элемент для многих параметров конфигурации уровня сайта и уровня приложения для служб IIS 7 в файле ApplicationHost.config и содержит элементы конфигурации. которые определяют параметры, используемые механизмом и модулями веб-сервера.
Примечание
В отличие от настроек, находящихся в < system.applicationHost
>, настройки в элементе
можно делегировать.
Совместимость
Версия | Примечания |
---|---|
ИИС 10.0 | Элемент не был изменен в IIS 10.0. |
ИИС 8.5 | |
ИИС 8.0 | Элементы и были добавлены как дочерние элементы. |
ИИС 7.5 | Элемент не был изменен в IIS 7.5. |
ИИС 7.0 | Элемент появился в IIS 7.0. |
ИИС 6.0 | н/д |
Настройка
Элемент
включен в установку IIS 7 по умолчанию. элемент 0014. Примеры настройки параметров, находящихся в элементе
, см. в дочерних элементах, перечисленных в разделе сведений о конфигурации этого раздела.
Конфигурация
Элемент
определен в файле ApplicationHost.config, хотя настройки в элементе
можно делегировать в файлы Web.config.
Атрибуты
Нет.
Дочерние элементы
Элемент | Описание |
---|---|
Инициализация приложения | Дополнительный элемент. Настраивает параметры для инициализации приложения, которая выполняется упреждающе до получения запроса. |
аспид | Дополнительный элемент. Настраивает параметры для приложений Active Server Pages (ASP). |
кэширование | Дополнительный элемент. Конфигурирует параметры выходного кэша. |
ЦГИ | Дополнительный элемент. Настраивает параметры по умолчанию для приложений Common Gateway Interface (CGI). |
по умолчаниюДокумент | Дополнительный элемент. Настраивает параметры для возврата документа по умолчанию в браузер клиента, когда клиент не указывает имя файла в запросе. |
каталогОбзор | Дополнительный элемент. Настраивает, включен или отключен просмотр каталогов на веб-сервере, и указывает информацию, которая должна включаться в список каталогов. |
fastCgi | Дополнительный элемент. Содержит набор определений пула приложений fastCgi. |
глобальные модули | Дополнительный элемент. Указывает параметры конфигурации для глобальных модулей на веб-сервере. |
манипуляторы | Дополнительный элемент. Указывает обработчики для обработки запросов к сайтам и приложениям. |
httpСжатие | Дополнительный элемент. Настраивает параметры сжатия HTTP для веб-сервера. |
httpОшибки | Дополнительный элемент. Настраивает сообщения об ошибках HTTP для веб-сервера. |
httpLogging | Дополнительный элемент. Указывает параметры конфигурации для ведения журнала HTTP.sys. |
httpпротокол | Дополнительный элемент. Настраивает настраиваемые заголовки ответов и заголовки перенаправления для отправки с сервера клиенту. |
HTTPRedirect | Дополнительный элемент. Настраивает параметры для перенаправления клиентских запросов в новое место. |
httpTracing | Дополнительный элемент. Указывает параметры конфигурации для трассировки HTTP.sys. |
isapiFilters | Дополнительный элемент. Указывает параметры конфигурации для фильтров ISAPI на веб-сервере. |
управление | Дополнительный элемент. Настраивает веб-сервер для удаленного управления с помощью диспетчера IIS. |
модули | Дополнительный элемент. Указывает параметры конфигурации для модулей на веб-сервере. |
одбклоггинг | Дополнительный элемент. Настраивает ведение журнала Open Database Connectivity (ODBC). |
безопасность | Дополнительный элемент. Указывает группу разделов, содержащую разделы, связанные с безопасностью. |
время выполнения сервера | Дополнительный элемент. Настраивает ограничения запросов для приложений на веб-сервере. |
serverSideInclude | Дополнительный элемент. Указывает, отключены ли директивы #exec на стороне сервера (SSI). |
статическое содержимое | Дополнительный элемент. Настраивает параметры обработчика запросов к статическим файлам. |
отслеживание | Дополнительный элемент. Настраивает параметры трассировки запросов. |
urlCompression | Дополнительный элемент. Настраивает сжатие статического и динамического содержимого. |
проверка | Дополнительный элемент. Настраивает IIS 7 для определения необходимости какой-либо миграции для приложения ASP. NET, настроенного для работы в режиме ISAPI, для правильной работы в интегрированном режиме. |
вебдав | Дополнительный элемент. Настраивает параметры публикации WebDAV. |
веб-сокет | Дополнительный элемент. Настраивает связь по протоколу WebSocket. |
Пример конфигурации
В следующем образце конфигурации определяется простой элемент
, содержащий только статическое содержимое.
<системный.веб-сервер>
<асп />
<кэширование включено="true" enableKernelCache="true" />
<файлы>
<добавить значение="Default.htm" />
<добавить значение="Index.htm" />
<добавить значение="Index.html" />
<глобальные модули>
dll" />
dll" />
<имя_схемы="gzip" dll="%Windir%\system32\inetsrv\gzip.dll" />
<статическиетипы>
<добавить mimeType="text/*" enabled="true" />
<добавить mimeType="message/*" enabled="true" />
<добавить mimeType="application/javascript" enabled="true" />
<добавить mimeType="*/*" enabled="false" />
htm" />
<одбклоггинг />
<безопасность>
<зависимости приложения/>
<аутентификация>
<базовая аутентификация />
<дайджестаутентикатион />
<Аутентификация окон />
<авторизация />
<очистить/>
<фильтрация запросов>
<добавить сегмент="Web.