По какой-то причине мой IIS не возвращает файлы шрифтов. Все они возвращаются как 404. Я проверил правильность URL-адресов и правильность типов MIME. Файлы шрифтов в настоящее время находятся внутри проекта .NET 4.5 с использованием MVC4. Когда я перемещаю файлы за пределы проекта в корневой каталог сервера, он отлично обслуживает файлы. Я убедился, что в файле web.config проекта не происходит никаких переопределений в отношении того, как обрабатываются расширения файлов.
Пока это происходит с файлами .TTF, .EOT, .SVG и .WOFF. Другие статические файлы в том же каталоге возвращаются нормально. Есть ли какой-то параметр в IIS8.5, который предотвращает возврат файлов шрифтов?
Я прикрепил файл журнала, созданный в результате отслеживания неудачных запросов.
Эта проблема, похоже, исчезла сама собой в процессе работы над проектом. Эндрю Мортон предоставил отличные инструкции по устранению неполадок для всех, у кого есть подобные проблемы. Приведу краткий список:
Убедитесь, что сервер использует правильный тип MIME. С помощью диспетчера IIS> Сервер> Проект> Типы MIME. Вот список типов MIME, которые у меня работают:
Если это не сработает, убедитесь, что у веб-сервера есть разрешения на папку проекта и папку, в которой хранятся файлы. Следующий учебник очень поможет.
Дальнейшая отладка с использованием такого инструмента, как ProcessMonitor поможет решить более сложные проблемы с сервером.
Надеюсь, это кому-то поможет.
Я диагностировал свое решение этой проблемы, изучив коды состояния в журнале ошибок ISS.
sc-status sc-substatus sc-win32-статус
500 0 1346
Статус win32 указывает, что
ERROR_BAD_IMPERSONATION_LEVEL
1346 (0x542)
Либо не был предоставлен требуемый уровень олицетворения, либо предоставленный уровень олицетворения недействителен.
https://docs.microsoft.com/en-gb/windows/win32/debug/system-error-codes--1300-1699-
Оказывается, есть статья MS об этой неисправности.
Убедитесь, что идентификатор пула приложений для соответствующего приложения является частью политики «Олицетворять клиента после аутентификации». Это требование, чтобы удостоверение пула приложений было частью этой политики напрямую или посредством унаследованного членства.
Чтобы проверить эту политику - перейдите в Пуск -> запустить -> secpol.msc -> Локальные политики -> Назначение прав пользователя
Для меня проблема заключалась в том, что группа «IIS_IUSRS» отсутствовала в этой политике.
попробуй это:
если да, это проблема конфигурации с типами mime на сервере приложений.
если нет, ваши шрифты не разрешены, потому что ожидаемый путь неверен - посмотрите на ошибку 404 для файла .html, и она должна показать, откуда сервер приложений ищет ваши шрифты, отображая путь unc относительно корневого веб-сайта