Файл web.config | Microsoft Learn
- Статья
- Чтение занимает 6 мин
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 (
). Пакет 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 | Необязательный целочисленный атрибут. Время в секундах, которое модуль ожидает, пока запустится процесс прослушивания порта исполняемого файла. Если этот предел превышен, модуль завершает процесс. Внутрипроцессное rapidFailsPerMinute не используется.Размещение вне процесса. Модуль пытается перезапустить процесс при получении нового запроса и будет продолжать пытаться перезапустить процесс для последующих входящих запросов, если не удается запустить приложение определенное в атрибуте Значение 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
Изменение конфигурации ASP.
NET приложения — ASP.NETTwitter LinkedIn Facebook Адрес электронной почты
- Статья
- Чтение занимает 2 мин
В этой статье описывается изменение Web. configфайла ASP.NET приложения.
Исходная версия продукта: ASP.NET
Исходный номер базы знаний: 815178
Аннотация
Файл Web.config определяет поведение ASP.NET приложений. Microsoft платформа .NET Framework, включая ASP.NET, использует текстовые файлы в формате XML.config для настройки приложений. Это отклонение от стандартных механизмов настройки реестра и метабаза. В настоящее время нет оснастки консоли управления (MMC) или другого предоставленного корпорацией Майкрософт средства администрирования для создания и изменения .config файлов.
Добавление параметров конфигурации в Web.config
Большинство ASP.NET приложений содержит предварительно созданный Web.config, который можно редактировать с помощью любого текстового редактора, например Блокнота. Как правило, Web.config файлы содержат комментарии, которые делают редактирование файла понятным. Однако может потребоваться добавить элементы конфигурации вWeb. config, в котором еще не определен элемент конфигурации. Чтобы добавить стандартный элемент конфигурации в файлWeb.config, выполните следующие действия.
Откройте файл Machine.config в текстовом редакторе, например в Блокноте.
Файл Machine.config расположен в каталоге
%SystemRoot%\Microsoft.NET\Framework\%VersionNumber%\CONFIG\
.В Machine.config найдите параметр конфигурации, который необходимо переопределить, в Web.configфайле. Если элемент содержит несколько строк, элемент начинается с строки
<element_name>
и заканчивается строкой</element_name>
. Элемент также может быть самозаверяющий и выглядеть примерно так<element_name attribute1='option' attribute2='option' />
. Пробелы игнорируются. Таким образом, элемент может охватывать несколько строк. Перед элементом может предшествовать комментарий. Комментарий содержится внутри<!-- and -->
маркировки. Приведенный<trace>
ниже пример элемента конфигурации является примером самозаверяющего элемента. Пример<trace>
элемента конфигурации содержит несколько атрибутов, охватывает несколько строк и комментарий в начале.<!-- trace Attributes: enabled="[true|false]" - Enable application tracing localOnly="[true|false]" - View trace results from localhost only pageOutput="[true|false]" - Display trace output on individual pages requestLimit="[number]" - Number of trace results available in trace.axd traceMode="[SortByTime|SortByCategory]" - Sorts trace result displays based on Time or Category --> <trace enabled="false" localOnly="true" pageOutput="false" requestLimit="10" traceMode="SortByTime" />
Скопируйте весь элемент конфигурации и любой начальный комментарий в буфер обмена.
Определите, как элемент вложен вMachine.configфайла .
Файл Machine. config иерархический, а элементы конфигурации вложены в другие элементы. При копировании элемента конфигурации из файлаMachine.config в файлWeb.configнеобходимо вложить этот элемент конфигурации в тот же элемент, из которого он был скопирован. Чтобы определить элемент файла Machine.config , в котором содержится элемент конфигурации, прокрутите файлMachine.configдо тех пор, пока не найдете открытый, а не закрытый элемент. Содержащийся элемент легко определить, так как элементы более высокого уровня имеют меньший отступ.
Большинство ASP.NET элементов конфигурации содержатся в элементе
<system.web>
. Конец элемента (</system.web>
) должен быть помещен после элемента конфигурации.Примечание.
Элемент, в котором содержится элемент конфигурации. Необходимо вставить этот элемент в тот же элемент вWeb.config файле. Элемент конфигурации может быть вложен в несколько элементов. Необходимо создать все элементы более высокого уровня вWeb. configфайла .
ЗакройтеMachine.config, а затем с помощью текстового редактора откройте файлWeb.config в корневом каталоге ASP.NET приложения.
Вставьте элемент конфигурации между началом и окончанием элемента, определенного на шаге 4.
Например, если
<system.web>
элемент конфигурации содержится в элементе,<system.web>
</system.web>
элемент конфигурации необходимо вставить сразу после открывающей строки элемента и перед закрывающей линией.Измените элемент конфигурации в файлеWeb.config , чтобы переопределить параметр Machine.config для этого приложения.
Этот параметр применяется к папке, которая содержит Web.configи все вложенные папки.
Ссылки
Создание файла Web.config для ASP.NET приложения
Развертывание приложений, созданных на основе платформа .NET Framework
ASP. NET конфигурации
Формат файлов ASP.NET конфигурации
файл web.config | Microsoft Learn
- Статья
- 8 минут на чтение
web.config
— это файл, который считывается IIS и основным модулем ASP.NET для настройки приложения, размещенного в 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 может предоставлять конфиденциальные файлы публично.
9Файл 0015 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"> <системный.веб-сервер> <обработчики>обработчики> веб-сервер> конфигурация>
Свойству InheritInChildApplications присвоено значение false
, чтобы указать, что параметры, указанные в элементе
, не наследуются приложениями, которые находятся в подкаталоге приложения.
Когда приложение развертывается в службе приложений Azure, для пути stdoutLogFile
задается значение \\?\%home%\LogFiles\stdout
. Путь сохраняет журналы стандартного вывода в папку LogFiles
, которая автоматически создается службой.
Сведения о настройке подприложения IIS см. в разделе Расширенная настройка.
Атрибуты элемента
aspNetCore
Атрибут | Описание | По умолчанию |
---|---|---|
аргументы | Необязательный строковый атрибут. Аргументы для исполняемого файла, указанного в | |
DisableStartUpErrorPage | Необязательный логический атрибут. Если 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
Преобразование web.config | Microsoft Узнайте
Редактировать
Твиттер LinkedIn Фейсбук Электронная почта
- Статья
- 2 минуты на чтение
Виджай Рамакришнан
Преобразования в файл web. config могут применяться автоматически при публикации приложения на основе:
- Конфигурация сборки
- Профиль
- Окружающая среда
- Пользовательский
Эти преобразования выполняются для одного из следующих сценариев создания web.config :
- Генерируется автоматически
Microsoft.NET.Sdk.Web
SDK. - Предоставляется разработчиком в корне содержимого приложения.
Конфигурация сборки
Сначала выполняются преобразования конфигурации сборки.
Включите файл web.{CONFIGURATION}.config для каждой конфигурации сборки (Отладка|Выпуск), требующей преобразования web.config .
В следующем примере переменная среды для конкретной конфигурации задается в web.Release.config :
<конфигурация xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> <местоположение> <системный.веб-сервер>веб-сервер> конфигурация> переменные среды>
Преобразование применяется, когда для конфигурации задано значение Release :
dotnet publish --configuration Release
Свойство MSBuild для конфигурации: $(Configuration)
.
Профиль
Преобразования профиля выполняются вторыми после преобразования конфигурации сборки.
Включите файл web.{PROFILE}.config для каждой конфигурации профиля, требующей преобразования web.config .
В следующем примере переменная среды для конкретного профиля устанавливается в web.FolderProfile.config для профиля публикации папки:
<конфигурация xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> <местоположение> <системный.веб-сервер>веб-сервер> конфигурация> переменные среды>
Преобразование применяется, когда используется профиль FolderProfile :
dotnet publish --configuration Release /p:PublishProfile=FolderProfile
Свойство MSBuild для имени профиля: $(PublishProfile)
.
Если профиль не передан, имя профиля по умолчанию — FileSystem , а web.FileSystem.config применяется, если файл присутствует в корне содержимого приложения.
Среда
Преобразования среды выполняются третьими после преобразования конфигурации сборки и профиля.
Включите файл web.{ENVIRONMENT}.config для каждой среды, требующей преобразования web.config .
В следующем примере в web.Production.config для производственной среды задана переменная среды для конкретной среды:
<конфигурация xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> <местоположение> <системный. веб-сервер>конфигурация> переменные среды>
Преобразование применяется, когда используется среда Production :
dotnet publish --configuration Release /p:EnvironmentName=Production
Свойство MSBuild для среды: $(EnvironmentName)
.
При публикации из Visual Studio и использовании профиля публикации см. раздел Профили публикации Visual Studio (.pubxml) для развертывания приложений ASP.NET Core.
Переменная среды ASPNETCORE_ENVIRONMENT
автоматически добавляется в файл web.config , если указано имя среды.
Пользовательский
Пользовательские преобразования выполняются в последнюю очередь после преобразований «Конфигурация сборки», «Профиль» и «Среда».
Включите файл {CUSTOM_NAME}.transform для каждой пользовательской конфигурации, требующей преобразования web.config .
В следующем примере пользовательская переменная среды преобразования задается в custom.transform :
<конфигурация xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> <местоположение> <системный.веб-сервер>конфигурация> переменные среды>
Преобразование применяется, когда свойство CustomTransformFileName
передается команде публикации dotnet:
публикация dotnet --configuration Release /p:CustomTransformFileName=custom.