IIS 7.5는 정적 HTML 페이지를로드하지 않습니다


10

전용 서버에 새로 설치된 IIS 7.5가 있습니다. ASP.NET 4.0 웹 응용 프로그램이 폴더에 복사되고, 새 웹 사이트가 포스트 80에 자체 IP로 생성되고, IIS_IUSR 및 IUSR 계정이 사이트 폴더에 대한 읽기 / 실행 권한을 가지며, 사이트가 4.0 .NET 인 자체 통합 앱 풀에 할당됩니다. (나는 같은 결과로 클래식 풀을 시도했습니다).

문제 :이 웹 사이트에 액세스하려고하면 브라우저가 aspx 페이지, .axd 파일 등과 같은 .NET 리소스로 생성 된 콘텐츠 만로드합니다. 정적 이미지, 정적 js, CSS 및 html 파일은 페이지 소스에 있지만 IIS는 그들을 제공하지 않습니다. 모든 브라우저의 개발 도구는 모든 정적 리소스가 잘못된 컨텐츠 유형 (이미지, 스타일 대신 일반 텍스트)으로 서버에 의해 전송되었다고 불평합니다. 내가 뭘 잘못 했니?


피들러 (또는 파이어 버그)에서 무엇을 볼 수 있습니까?
SLaks

이것이 가능한 경우 서버에서 페이지를 실행하면, 특히 서버에서 정적 컨텐츠를 단독으로 실행하면 자세한 오류 보고서가 표시됩니다.
Aristos

Firebug를 사용하지 않습니다. 그러나 Chrome은 예를 들어 페이지의 jpg 파일에 대해 "이미지로 해석되었지만 MIME 유형 텍스트 / 일반으로 전송 된 리소스"에 대해 불만을 표시합니다. 모든 스타일, js 및 정적 html 페이지에 동일합니다. 또한 스크립트 및 HTML의 동적로드가 작동하지 않습니다.

@ Aristos : 그랬어요. 서버의 브라우저는 외부 브라우저와 같은 방식으로 페이지를 렌더링합니다. 오류가 없으며 불완전한 페이지입니다.

웹 서버를 실행하는 사용자가 해당 파일을 읽을 권리가 있습니까?
Luc M

답변:


12

IIS 7 / 7.5에는 새로운 "기능"-역할 서비스가 있습니다. rsbarro의 게시물은 정적 컨텐츠를 담당하는 역할 서비스가 하나 있음을 상기시켜주었습니다. 웹 서버 / 공통 HTTP 기능 / 정적 컨텐츠입니다. rsbarro가 제안한대로 IIS 관리자에 MIME 유형 아이콘이 있는지 확인하십시오.

고정 컨텐츠 역할 서비스가 설치되어 있지 않으면 설치해야합니다. 그렇게하려면 다음을 선택하십시오.

  • 서버 매니저
  • 역할
  • 왼쪽 분할 창의 웹 서버 (IIS) 노드
  • 역할 서비스 창으로 스크롤
  • 정적 컨텐츠 역할 서비스가 설치되어 있는지 확인하십시오.

당신이 묘사 한 것에서, 이것은 당신의 문제 인 것 같습니다.

일반적으로 IIS7이 IIS6에서 수행 한 작업을 수행하지 않는 경우 가장 먼저 확인해야 할 것은 해당 역할 서비스가 설치되어 있는지 확인하는 것입니다. 도움이 되었기를 바랍니다.


정적 콘텐츠 역할, 어떻게 그리웠습니까? 감사합니다. 문제를 완벽하게 해결했습니다.
David Thomas Garcia

6

IIS에서 웹 사이트로 이동하여 MIME 유형 섹션을 확인하십시오 (아래 이미지 참조). 해당 목록에 .js, .css, .html 등의 항목이 표시되고 올바른 MIME 유형이 지정되어 있는지 확인하십시오. IIS 7.5는 MIME 형식이 지정된 경우에만 페이지를 제공합니다. 기본적으로 이러한 확장의 MIME 유형 applicationHost.configC:\Windows\system32\inetsrv\config폴더 에있는 파일 에서 설정됩니다 ( 파일 을 보려면 관리자로 메모장을 실행해야 할 수도 있음). .js를 검색 <mimeMap>하면 <staticContent>요소 아래 에 항목이 있습니다.

iis mime 유형

이 설정은 web.config파일 에서 무시할 수 있습니다 . 그것들이 다음의 위치에 나타날 것입니다 web.config:

<system.webServer>
    <staticContent>
        <remove fileExtension=".js" />
    </staticContent>
</system.webServer>

나는 거기에서 확인하면서 분명히 시작합니다. MIME 유형 섹션에서 모든 것이 정상으로 보이는 경우 정적 파일 요청을 방해하는 모듈이있을 수 있습니다 (단, 섹션 <modules runAllManagedModulesForAllRequests="true" />에서 설정 한 경우에만 가능 <system.webServer>). 이 경우 모든 모듈 설정을 제거 web.config하고 정적 파일을 가져올 수 있는지 한 번에 하나씩 읽고 어떤 모듈이 문제를 일으키는 지 확인하십시오. 당신이 그것을 이해할 수 없다면 질문에 web.config(또는 적어도 system.websystem.webServer섹션) 내용을 게시하는 것이 좋습니다 .


2

같은 문제가 있었지만 내 앱 풀이 도메인 계정으로 실행 중이고 해당 사용자가 웹 사이트 폴더에 대한 권한을 가지고있었습니다. 내 웹 사이트는 aspx를 렌더링했지만 정적 콘텐츠는 렌더링하지 않았습니다. 내 문제를 해결 한 것은 "인증 후 클라이언트 가장"이라는 로컬 보안 정책에 IIS_IUSRS 그룹을 추가하는 것이 었습니다. IIS_IUSRS 그룹에 내 도메인 계정이 있습니다. iis 7.5 Windows 2008 서버를 실행 중입니다.


한 번 이상 공표 할 수 있기를 바랍니다. 내 .css 파일이 IIS에서 제공되지 않는 이유를 검색하는 동안이 질문에 왔습니다. 저장된 폴더에 대한 Windows 권한과 관련이있었습니다.
2b77bee6-5445-4c77-b1eb-4df3e5
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.