Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Замечание
Это не последняя версия этой статьи. В текущей версии см. версию .NET 10 этой статьи.
Предупреждение
Эта версия ASP.NET Core больше не поддерживается. Для получения дополнительной информации см. Политику поддержки .NET и .NET Core. В текущей версии см. версию .NET 10 этой статьи.
В этой статье объясняется, как размещать и развертывать Blazor WebAssembly, используя Интернет-службы информации (IIS).
IIS — это статический файловый сервер для Blazor приложений. Для настройки IIS для размещения Blazor см. статью Создание статического веб-сайта в IIS.
Опубликованные ресурсы создаются в /bin/Release/{TARGET FRAMEWORK}/publish или bin/Release/{TARGET FRAMEWORK}/browser-wasm/publish папке, где {TARGET FRAMEWORK} плейсхолдер является целевой платформой. Размещение содержимого publish папки на веб-сервере или службе размещения.
Файл web.config
Blazor При публикации web.config проекта создается файл со следующей конфигурацией IIS:
- Типы MIME
- Сжатие HTTP включено для следующих типов MIME:
application/octet-streamapplication/wasm
- Устанавливаются правила переопределения URL-адресов:
- Настройте подкаталог, в котором находятся статические ресурсы приложения (
wwwroot/{PATH REQUESTED}). - Создайте резервную маршрутизацию SPA, чтобы запросы нефайловых ресурсов перенаправлялись в документ по умолчанию приложения в папке статических ресурсов (
wwwroot/index.html).
- Настройте подкаталог, в котором находятся статические ресурсы приложения (
Использование пользовательского web.config
Чтобы использовать пользовательский web.config файл, следуйте этим шагам.
- Поместите пользовательский
web.configфайл в корневую папку проекта. - Опубликуйте проект. Дополнительные сведения см. в статье Размещение и развертывание ASP.NET Core Blazor.
- Поместите пользовательский
web.configфайл в корневую папку проекта. Для размещенного Blazor WebAssemblyрешения поместите файл в папку Server проекта. - Опубликуйте проект. Для размещенного Blazor WebAssembly решения опубликуйте решение из Server проекта. Дополнительные сведения см. в статье Размещение и развертывание ASP.NET Core Blazor.
Если при создании или преобразовании пакета SDK web.config во время публикации файл не перемещается в опубликованные ресурсы в папке publish, или изменяется настраиваемая конфигурация в пользовательском файле web.config, используйте, при необходимости, любой из следующих подходов, чтобы полностью контролировать процесс:
Если пакет SDK не создает файл, например, в автономном приложении в Blazor WebAssembly или
/bin/Release/{TARGET FRAMEWORK}/publish/wwwroot, где заполнительbin/Release/{TARGET FRAMEWORK}/browser-wasm/publishявляется целевой платформой, задайте свойству{TARGET FRAMEWORK}значение<PublishIISAssets>в файле проектаtrue. Обычно для автономных приложений WebAssembly это единственный обязательный параметр для перемещения пользовательскогоweb.configфайла и предотвращения преобразования файла пакетом SDK.<PropertyGroup> <PublishIISAssets>true</PublishIISAssets> </PropertyGroup>Отключите преобразование пакета SDK
web.configв файле проекта (.csproj):<PropertyGroup> <IsTransformWebConfigDisabled>true</IsTransformWebConfigDisabled> </PropertyGroup>Добавьте пользовательский целевой объект в файл проекта (
.csproj) для перемещения пользовательскогоweb.configфайла. В следующем примере пользовательскийweb.configфайл помещается разработчиком в корне проекта.web.configЕсли файл находится в другом месте, укажите путь к файлу.SourceFilesВ следующем примере указывается папкаpublishс$(PublishDir), но необходимо указать путь кDestinationFolderдля пользовательского расположения выхода.<Target Name="CopyWebConfig" AfterTargets="Publish"> <Copy SourceFiles="web.config" DestinationFolder="$(PublishDir)" /> </Target>
Установка модуля переопределения URL-адресов
Модуль перезаписи URL-адресов требуется для перезаписи URL-адресов. Модуль по умолчанию не установлен, и он недоступен для установки в качестве компонента службы ролей веб-сервера (IIS). Модуль должен быть скачан с веб-сайта IIS. Установите модуль с помощью установщика веб-платформы:
- Локально перейдите на страницу загрузки модуля переопределения URL-адресов. Для английской версии выберите WebPI, чтобы скачать установщик WebPI . Для других языков выберите соответствующую архитектуру для сервера (x86/x64), чтобы скачать установщик.
- Скопируйте установщик на сервер. Запустите установщик. Нажмите кнопку "Установить" и примите условия лицензии. После завершения установки перезагрузка сервера не требуется.
Настройка веб-сайта
Задайте физический путь веб-сайта к папке приложения. Папка содержит следующее:
- Файл
web.config, который IIS использует для настройки веб-сайта, включая необходимые правила перенаправления и типы контента файлов. - Папка статичных ресурсов приложения.
Размещенный в качестве подприложения IIS
Если автономное приложение размещается как под-приложение IIS, выполните одно из следующих действий:
Отключите обработчик наследуемого модуля ASP.NET Core.
Удалите обработчик в Blazor опубликованном
web.configфайле приложения, добавив<handlers>раздел в<system.webServer>раздел файла:<handlers> <remove name="aspNetCore" /> </handlers>Отключите наследование корневого раздела (родительского) приложения
<system.webServer>с помощью элемента<location>, у которогоinheritInChildApplicationsзадано значениеfalse:<?xml version="1.0" encoding="utf-8"?> <configuration> <location path="." inheritInChildApplications="false"> <system.webServer> <handlers> <add name="aspNetCore" ... /> </handlers> <aspNetCore ... /> </system.webServer> </location> </configuration>Замечание
Отключение наследования раздела корневого (родительского) приложения
<system.webServer>— это конфигурация по умолчанию для опубликованных приложений с помощью пакета SDK для .NET.
Удаление обработчика или отключение наследования выполняется в дополнение к настройке базового пути приложения. Установите базовый путь приложения в файле index.html на псевдоним IIS, используемый при конфигурации дочернего приложения в IIS.
Настройте базовый путь приложения, следуя инструкциям в ASP.NET Core базовом пути приложенияBlazor.
Сжатие Brotli и Gzip
Этот раздел относится только к автономным приложениям Blazor WebAssembly .
Этот раздел относится только к автономным приложениям Blazor WebAssembly . Размещенные Blazor приложения используют файл по умолчанию ASP.NET Core web.config, а не файл, указанный в этом разделе.
Систему IIS можно настроить через web.config для предоставления сжатых активов Brotli или Gzip для автономных Blazor приложений. Пример файла конфигурации см. в разделе web.config.
Дополнительная настройка примера web.config файла может потребоваться в следующих сценариях:
- Спецификация приложения вызывает любой из следующих вариантов:
- Предоставление сжатых файлов, которые не настроены с помощью примера
web.configфайла. - Обслуживание сжатых файлов, настроенных примером
web.configфайла в несжатом формате.
- Предоставление сжатых файлов, которые не настроены с помощью примера
- Конфигурация IIS сервера (например,
applicationHost.config) предоставляет параметры IIS по умолчанию для уровня сервера. В зависимости от конфигурации уровня сервера приложению может потребоваться другая конфигурация IIS, отличная от того, что содержит примерweb.configфайла.
Дополнительные сведения о пользовательских web.config файлах см. в разделе "Использование пользовательского web.config раздела".
Устранение неполадок
Если получено значение 500 — внутренняя ошибка сервера , а диспетчер IIS выдает ошибки при попытке получить доступ к конфигурации веб-сайта, убедитесь, что установлен модуль перезаписи URL-адресов. Если модуль не установлен, web.config файл не может быть проанализирован службами IIS. Это препятствует загрузке конфигурации веб-сайта диспетчером IIS и мешает веб-сайту обслуживать статические файлы Blazor.
Дополнительные сведения об устранении неполадок развертываний в IIS см. в статье "Устранение неполадок ASP.NET Core в службе приложений Azure и СЛУЖБАХ IIS".