IIS는 특정 파일 확장자를 제공하지 않습니다.

IIS는 특정 파일 확장자를 제공하지 않습니다.

Win 2k3 서버와 IIS에서 이상한 문제가 발생했습니다.

Iis에는 여러 사이트가 있는데 그 중 하나에서 하위 디렉터리를 만들고 웹 응용 프로그램으로 설정해야 합니다. 새 디렉토리를 만들고 여기에 .js/.txt 파일을 넣으면 iis에서 제공되지 않는다는 것을 알았습니다(IE에서는 Internet Explorer에서 웹페이지를 표시할 수 없다는 오류가 발생합니다).

다른 이전 사이트의 하위 디렉터리에 동일한 파일을 넣으면 올바르게 표시됩니다.

트래픽을 스니핑하여 iis가 연결 상태 200으로 응답한 다음 모든 연결을 완전히 끊는 것을 확인했습니다.

http://domain.com/test2/prova.txt

GET /test2/prova.txt HTTP/1.1
Host: domain.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive

HTTP/1.x 200 OK

예를 들어 prova.asp에서 prova.txt 파일의 이름을 바꾸면 문제 없이 표시되므로 권한 문제가 아니어야 합니다.

몇 가지 조사를 한 후 MIME 유형 누락으로 인해 발생할 수 있다는 사실을 발견했으며 .txt 및 .js가 존재하고 aspnet_isapi.dll에서 제공되는지 확인했습니다. 그리고 여기에 또 다른 이상한 점이 있습니다. 디렉터리 속성에서 MIME 매핑을 제거하면 올바르게 제공되지만 js에서는 동일한 작업이 작동하지 않습니다.

정말 아이디어가 고갈되기 시작했습니다. 혹시 힌트를 주실 수 있는 분 계십니까?

미리 감사드립니다.

답변1

나는 같은 문제가 있었다. IIS는 MIME 유형 필터링이라는 기능을 수행합니다. 특정 파일 확장자의 MIME 유형을 모르면 404 오류를 반환합니다.

IIS <7에서: 사이트(또는 서버) 속성을 엽니다. 다음을 클릭하세요.HTTP 헤더탭. 다음을 클릭하세요.MIME 유형단추. MIME 유형이 "application/octet-stream"인 파일 유형 *을 추가합니다.

IIS 7+의 경우: IIS 관리자를 엽니다. 다음을 클릭하세요.섬기는 사람또는 웹사이트. 두 번 클릭MIME 유형기능 아이콘입니다. 작업 창에서 다음을 클릭합니다.추가하다. "파일 이름 확장명" 상자를 *로 채우고 MIME 유형 상자를 "application/octet-stream"으로 채웁니다.

.NET 애플리케이션을 생성하는 경우 web.config 파일에서도 동일한 작업을 수행할 수 있습니다.

답변2

해당 확장을 aspnet_isapi.dll에 매핑했으므로 이제 ASP.NET에 이를 처리하도록 지시해야 합니다. IIS 부분을 올바르게 수행했습니다.

httpHandler에 설정해야 하는 PageHandlerFactory입니다. 나는 그것을 깊이 다루는 이 페이지를 찾았습니다.http://aspnet.4guysfromrolla.com/articles/011404-1.aspx.

관련 정보