전용 서버에 새로 설치된 IIS 7.5가 있습니다. ASP.NET 4.0 웹 응용 프로그램이 폴더에 복사되고, 새 웹 사이트가 포스트 80에 자체 IP로 생성되고, IIS_IUSR 및 IUSR 계정이 사이트 폴더에 대한 읽기 / 실행 권한을 가지며, 사이트가 4.0 .NET 인 자체 통합 앱 풀에 할당됩니다. (나는 같은 결과로 클래식 풀을 시도했습니다).
문제 :이 웹 사이트에 액세스하려고하면 브라우저가 aspx 페이지, .axd 파일 등과 같은 .NET 리소스로 생성 된 콘텐츠 만로드합니다. 정적 이미지, 정적 js, CSS 및 html 파일은 페이지 소스에 있지만 IIS는 그들을 제공하지 않습니다. 모든 브라우저의 개발 도구는 모든 정적 리소스가 잘못된 컨텐츠 유형 (이미지, 스타일 대신 일반 텍스트)으로 서버에 의해 전송되었다고 불평합니다. 내가 뭘 잘못 했니?
답변
IIS 7 / 7.5에는 새로운 “기능”-역할 서비스가 있습니다. rsbarro의 게시물은 정적 컨텐츠를 담당하는 역할 서비스가 하나 있음을 상기시켜주었습니다. 웹 서버 / 공통 HTTP 기능 / 정적 컨텐츠입니다. rsbarro가 제안한대로 IIS 관리자에 MIME 유형 아이콘이 있는지 확인하십시오.
고정 컨텐츠 역할 서비스가 설치되어 있지 않으면 설치해야합니다. 그렇게하려면 다음을 선택하십시오.
- 서버 매니저
- 역할
- 왼쪽 분할 창의 웹 서버 (IIS) 노드
- 역할 서비스 창으로 스크롤
- 정적 컨텐츠 역할 서비스가 설치되어 있는지 확인하십시오.
당신이 묘사 한 것에서, 이것은 당신의 문제 인 것 같습니다.
일반적으로 IIS7이 IIS6에서 수행 한 작업을 수행하지 않는 경우 가장 먼저 확인해야 할 것은 해당 역할 서비스가 설치되어 있는지 확인하는 것입니다. 도움이 되었기를 바랍니다.
답변
IIS에서 웹 사이트로 이동하여 MIME 유형 섹션을 확인하십시오 (아래 이미지 참조). 해당 목록에 .js, .css, .html 등의 항목이 표시되고 올바른 MIME 유형이 지정되어 있는지 확인하십시오. IIS 7.5는 MIME 형식이 지정된 경우에만 페이지를 제공합니다. 기본적으로 이러한 확장의 MIME 유형 applicationHost.config
은 C:\Windows\system32\inetsrv\config
폴더 에있는 파일 에서 설정됩니다 ( 파일 을 보려면 관리자로 메모장을 실행해야 할 수도 있음). .js를 검색 <mimeMap>
하면 <staticContent>
요소 아래 에 항목이 있습니다.
이 설정은 web.config
파일 에서 무시할 수 있습니다 . 그것들이 다음의 위치에 나타날 것입니다 web.config
:
<system.webServer>
<staticContent>
<remove fileExtension=".js" />
</staticContent>
</system.webServer>
나는 거기에서 확인하면서 분명히 시작합니다. MIME 유형 섹션에서 모든 것이 정상으로 보이는 경우 정적 파일 요청을 방해하는 모듈이있을 수 있습니다 (단, 섹션 <modules runAllManagedModulesForAllRequests="true" />
에서 설정 한 경우에만 가능 <system.webServer>
). 이 경우 모든 모듈 설정을 제거 web.config
하고 정적 파일을 가져올 수 있는지 한 번에 하나씩 읽고 어떤 모듈이 문제를 일으키는 지 확인하십시오. 당신이 그것을 이해할 수 없다면 질문에 web.config
(또는 적어도 system.web
및 system.webServer
섹션) 내용을 게시하는 것이 좋습니다 .
답변
같은 문제가 있었지만 내 앱 풀이 도메인 계정으로 실행 중이고 해당 사용자가 웹 사이트 폴더에 대한 권한을 가지고있었습니다. 내 웹 사이트는 aspx를 렌더링했지만 정적 콘텐츠는 렌더링하지 않았습니다. 내 문제를 해결 한 것은 “인증 후 클라이언트 가장”이라는 로컬 보안 정책에 IIS_IUSRS 그룹을 추가하는 것이 었습니다. IIS_IUSRS 그룹에 내 도메인 계정이 있습니다. iis 7.5 Windows 2008 서버를 실행 중입니다.