
어떤 이유로 내 IIS는 글꼴 파일을 반환하지 않습니다. 모두 404로 반환됩니다. URL이 정확하고 MIME 유형이 올바른지 확인했습니다. 글꼴 파일은 현재 MVC4를 사용하는 .NET 4.5 프로젝트 내에 있습니다. 프로젝트 외부의 파일을 서버의 루트 디렉터리로 이동하면 파일이 제대로 제공됩니다. 프로젝트의 web.config에서 파일 확장자가 처리되는 방식에 대한 재정의가 발생하지 않음을 확인했습니다.
지금까지는 .TTF, .EOT, .SVG 및 .WOFF 파일에서 이런 일이 발생했습니다. 동일한 디렉터리에 있는 다른 정적 파일은 정상적으로 반환됩니다. IIS8.5에는 글꼴 파일이 반환되지 않도록 하는 일부 설정이 있습니까?
실패한 요청 추적으로 인해 생성된 로그 파일을 첨부했습니다.
답변1
해당 문제는 프로젝트 진행 과정에서 자체적으로 해결된 것으로 보입니다. Andrew Morton은 비슷한 문제가 있는 다른 사람을 위해 몇 가지 훌륭한 문제 해결 단계를 제공했습니다. 빠른 목록을 제공하겠습니다.
서버에서 올바른 MIME 유형을 사용하고 있는지 확인하십시오. IIS 관리자 > 서버 > 프로젝트 > MIME 유형을 사용합니다. 나에게 적합한 MIME 유형 목록은 다음과 같습니다.
- .eot = 애플리케이션/vnd.ms-fontobject
- .svg = 이미지/svg+xml
- .ttf = 애플리케이션/옥텟 스트림
- .woff = 애플리케이션/x-font-woff
그래도 작동하지 않으면 웹 서버에 프로젝트 폴더와 파일을 저장하는 폴더에 대한 권한이 있는지 확인하십시오. 수행원튜토리얼많은 도움이 될 것입니다.
다음과 같은 도구를 사용하여 추가 디버깅프로세스모니터더 완고한 서버 문제를 좁히는 데 도움이 될 것입니다.
이것이 누군가에게 도움이 되기를 바랍니다.
답변2
ISS 오류 로그의 상태 코드를 조사하여 이에 대한 해결 방법을 진단했습니다.
sc-상태 sc-하위 상태 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 기사가 있는 것으로 밝혀졌습니다.
해당 애플리케이션의 애플리케이션 풀 ID가 '인증 후 클라이언트 가장' 정책의 일부인지 확인하세요. 응용 프로그램 풀 ID가 직접적으로 또는 상속된 멤버십을 통해 이 정책의 일부여야 한다는 요구 사항이 있습니다.
이 정책을 확인하려면 시작 -> 실행 -> secpol.msc -> 로컬 정책 -> 사용자 권한 할당으로 이동하세요.
나에게 문제는 이 정책에서 'IIS_IUSRS' 그룹이 누락되었다는 것입니다.
답변3
이 시도:
- 해결되었음을 알 수 있도록 브라우저에 설명을 작성하는 [선택한 편집기]에서 html 파일을 만듭니다.
진전섬망증, 별거 아니야
- 유효한 HTML인지 테스트해 보세요.
- 글꼴이 있는 디렉토리에 넣으세요. [선택한 브라우저] 개발 도구의 404 오류로 알 수 있습니다(상대 경로여야 함).
- 그곳으로 이동하세요. 문제가 해결되었나요?
그렇다면 애플리케이션 서버의 MIME 유형 구성 문제입니다.
그렇지 않은 경우 예상 경로가 올바르지 않기 때문에 글꼴이 확인되지 않은 것입니다. .html 파일에 대한 404 오류를 보면 웹 루트에 상대적인 unc 경로를 표시하여 응용 프로그램 서버가 글꼴을 찾는 위치를 알 수 있습니다.