Ошибка 404 виртуального каталога .NET CORE 3.1

#iis #.net-core

Вопрос:

У нас есть опубликованный веб-сайт .NET Core 3.1, размещенный в IIS. Корневая папка (содержащая библиотеки DLL): c:qaweb

В противном случае у нас есть папки, такие как:

  • c:qawebwwwrootcss
  • c:qawebwwwrootjs

В IIS мы создали виртуальный каталог с именем «изображения». Доступ к веб-сайту можно получить через http://localhost

Мы можем просматривать отдельные файлы без ошибок:

  • http://localhost/js/brand.js
  • http://localhost/css/main.css

Однако при попытке просмотреть файлы в виртуальном каталоге мы получаем 404:

http://localhost/images/foo.jpg

Но если мы вставим «/wwwroot» в URL-адрес, мы увидим содержимое виртуального каталога без проблем:

http://localhost/wwwroot/images/foo.jpg

Зачем нам нужен «wwwroot/» в URL-адресе? Когда мы запускаем один и тот же веб-сайт из Visual Studio / IIS Express, нам не нужен «wwwroot/» в URL-адресе для просмотра /images/foo.jpg

Я подумал, что, может быть, если мы установим псевдоним виртуального каталога на «wwwroot/images», это может сработать, но это не позволяет использовать символ косой черты в псевдониме.

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

1. Вы можете использовать отслеживание неудачных запросов для просмотра подробной информации об ошибках. Использование Трассировки неудачных запросов для отслеживания Правил перезаписи .

Ответ №1:

Убедитесь, что виртуальный каталог создан на уровне сайта. Похоже, что он вложен в папку wwwroot. Попробуйте это — щелкните правой кнопкой мыши на сайте —> Добавить виртуальный каталог —>> Псевдоним: изображения, Физический путь: c:qawebwwwroot. После этого вы должны перейти к изображениям под http://localhost/images/js/brand.js, http://localhost/images/css/main.css и т.д.

Если это не поможет, подумайте о том, чтобы сохранить статические файлы в другой папке за пределами корневой папки приложения и создать виртуальный каталог, связанный с ней.

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

1. Он был создан на уровне сайта.

2. Отслеживание неудачных запросов-полезный способ решения проблемы.