WedX - журнал о программировании и компьютерных науках

Blazor не обслуживал статические файлы с wwwroot после развертывания в IIS

Я разрабатываю приложение .net 5.0 blazor wasm. Когда я запускаю приложение из визуальной студии, используя IIS Express, и перехожу к https://localhost:5001/docs/simple.pdf, файл обслуживается в браузере.

Однако то же самое не работает после развертывания приложения blazor wasm на IIS. Я не получаю никакой ошибки, вместо этого загружается мой экран шаблона маршрута Not Found.

Вот распечатки экрана:

wwwroot приложения blazor wasm:

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

IISExpress загрузка документа:

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

IIS virtual directory путь:

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

IIS не загружает документ и отображает NotFound шаблон маршрута:

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

Я также заметил, что ни один из файлов в wwwroot не доступен напрямую в браузере в IIS. Пожалуйста, помогите, что мне не хватает.


  • Когда вы настраивали IIS, вы действительно выбрали порт 44353? Проверьте порт в конфигурации IIS, чтобы быть уверенным. Если вы не указали явно, по умолчанию используется порт 80. 04.05.2021
  • Я явно выбрал порт 44353. Версия https будет работать на порту 80 по умолчанию? 05.05.2021
  • Хорошо, я также пробовал 44353, и он отлично работает. Еще одна вещь, которую нужно проверить: убедитесь, что у вас есть app.UseStaticFiles() в методе Configure() файла Startup.cs в вашем серверном проекте. 05.05.2021
  • это автономное развертывание blazor wasm в IIS. app.UseStaticFiles() здесь нет 05.05.2021
  • Вы проверили, есть ли соответствующие сообщения об ошибках в консоли? Я не нашел сообщение об ошибке NotFound на изображении, которое вы разместили. Или вы можете попробовать использовать отслеживание неудачных запросов, чтобы получить подробные сообщения об ошибках. 05.05.2021
  • Я сейчас замечаю странную вещь. в первый раз, когда я запрашиваю, я получаю сообщение об ошибке не найдено, как показано на скриншотах. теперь, если я нажму ctrl+F5, он отправляет документ. Любая идея о том, что нужно сделать? 05.05.2021
  • Кажется, тогда это была проблема с кэшированием. Тем не менее, я только что опубликовал решение для других в будущем. Для приложения, размещенного на ASP.NET, требуется код, который я предложил. 05.05.2021
  • но это происходит каждый раз для одного и того же запроса. каждый раз, когда мне нужно нажать ctrl+F5 для подачи документа. 05.05.2021
  • Вы пробовали другие браузеры? Это та же проблема? 07.05.2021
  • да, я заметил такое же поведение во всех браузерах. Подозреваю, что причина в чем-то другом. Я сравниваю свой проект blazor wasm с новым проектом blazor wasm, чтобы найти разницу. 07.05.2021
  • Я близок к обнаружению проблемы. Когда мы используем <CascadingAuthenticationState> и элемент app сопоставляется с элементом body, например builder.RootComponents.Add<App>("body"); в Program.cs 07.05.2021
  • Ваша проблема решена? 11.05.2021
  • Нет. на данный момент я сделал другую реализацию в качестве обходного пути. Но это то, что мне нужно проанализировать дальше. 11.05.2021
  • Есть ли какие-либо связанные сообщения об ошибках в отслеживании неудачных запросов? 13.05.2021

Ответы:


1

Blazor WebAssembly не участвует в обслуживании ваших файлов.

Это то, что нужно настроить в IIS.

04.05.2021
  • Так как же настроить IIS? 04.05.2021
  • Пожалуйста, не могли бы вы помочь в том, какую конфигурацию необходимо выполнить в IIS? 04.05.2021
  • Откуда вы используете Blazor WASM SPA — как вы используете localhost: 44353? 04.05.2021
  • Я опубликовал свой blazor wasm в виртуальном каталоге IIS, который сопоставляется с localhost: 44353, и получил доступ к нему из браузера. 04.05.2021
  • Я склонен согласиться с этим ответом. Я только что разместил небольшой Blazor WASM на своем IIS, и я мог легко перемещаться по ресурсам внутри wwwroot. Поэтому я думаю, что проблема OP не связана с Blazor. 04.05.2021
  • @Jason D, ты запускал приложение на https-порте 443 по умолчанию? Или необходимо выполнить какую-либо конкретную настройку в IIS? 05.05.2021

  • 2

    Я смог воспроизвести вашу проблему. Вот как я думаю, вы можете это исправить.

    Перейдите к проекту сервера внутри вашего решения.

    Откройте файл Startup.cs. Перейдите к методу Configure и добавьте эту строку кода:

        app.UseStaticFiles();
    

    Опубликуйте свой проект и повторно скопируйте его в IIS.

    В стандартном шаблоне Visual Studio этот код будет. Но в зависимости от того, как вы создали свое решение, возможно, вы его пропустили.

    05.05.2021
  • app.UseStaticFiles() будет доступен в шаблоне проекта blazor wasm? 05.05.2021
  • Если это приложение, размещенное на ASP.NET, то будет проект на стороне клиента и на стороне сервера. Я неправильно понял, что это был только клиентский проект. 05.05.2021
  • Новые материалы

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..

    ИИ в аэрокосмической отрасли
    Каждый полет – это шаг вперед к великой мечте. Чтобы это происходило в их собственном темпе, необходима команда астронавтов для погони за космосом и команда технического обслуживания..


    Для любых предложений по сайту: [email protected]