Blazor WASM — автономное развертывание в IIS

#iis #blazor #blazor-webassembly

#iis #blazor #blazor-webassembly

Вопрос:

Я пытаюсь развернуть приложение Blazor WASM в IIS, следуя приведенным здесь инструкциям.

  • Это всего лишь готовый образец приложения Blazor WASM
  • Я опубликовал приложение в папке
  • Я добавил модуль перезаписи URL в IIS
  • Я добавил поддержку динамического сжатия в IIS
  • Я создал новое веб-приложение на веб-сайте по умолчанию и указал на папку, в которой я опубликовал приложение Blazor

При вызове приложения появляется страница, содержащая «Произошла необработанная ошибка. Перезагрузите».

Просматривая запросы в инструментах разработки браузера, index.html выполняется из папки wwwroot, предполагая, что срабатывает правило перезаписи url, но запросы на css/bootstrap.min.css, _framework/blazor.webassembly.js и css/ app.css все терпят неудачу со статусом 404 — Не найдено.

Чего мне не хватает?

Windows 10 2004.

Ответ №1:

попробуйте задать базовый путь в вашем index.html файл:

 <base href="/CoolApp/">
  

ниже приведен путь к папке приложения iis:

введите описание изображения здесь

вы можете установить его в свою папку публикации.

файл web.conifg:

 <?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <staticContent>
      <remove fileExtension=".dat" />
      <remove fileExtension=".dll" />
      <remove fileExtension=".json" />
      <remove fileExtension=".wasm" />
      <remove fileExtension=".woff" />
      <remove fileExtension=".woff2" />
      <mimeMap fileExtension=".dll" mimeType="application/octet-stream" />
      <mimeMap fileExtension=".dat" mimeType="application/octet-stream" />
      <mimeMap fileExtension=".json" mimeType="application/json" />
      <mimeMap fileExtension=".wasm" mimeType="application/wasm" />
      <mimeMap fileExtension=".woff" mimeType="application/font-woff" />
      <mimeMap fileExtension=".woff2" mimeType="application/font-woff" />
    </staticContent>
    <httpCompression>
      <dynamicTypes>
        <add mimeType="application/octet-stream" enabled="true" />
        <add mimeType="application/wasm" enabled="true" />
      </dynamicTypes>
    </httpCompression>
    <rewrite>
      <rules>
        <rule name="Serve subdir">
          <match url=".*" />
          <action type="Rewrite" url="wwwroot{R:0}" />
        </rule>
        <rule name="SPA fallback routing" stopProcessing="true">
          <match url=".*" />
          <conditions logicalGrouping="MatchAll">
            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
          </conditions>
          <action type="Rewrite" url="wwwroot" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>
  

индексный файл:

введите описание изображения здесь

вывод:

введите описание изображения здесь

Примечание: убедитесь, что вы назначили разрешения iis_iusrs и iusr для папки сайта.

https://learn.microsoft.com/en-us/aspnet/core/blazor/host-and-deploy/?view=aspnetcore-3.1amp;tabs=visual-studio

Комментарии:

1. Добавление пути к приложению в тег <base> сделало свое дело — спасибо!