HTTP 오류 403.14-금지-웹 서버가이 디렉토리의 내용을 나열하지 않도록 구성되었습니다.


146

방금 Visual Studio 2012에서 빈 웹 사이트를 새로 만들고 실행을 클릭했습니다 (예 : 브라우저에서보기).이 오류가 발생합니다.

HTTP 오류 403.14-금지 웹 서버가이 디렉토리의 내용을 나열하지 않도록 구성되었습니다.

IIS로 이동하여 디렉토리 찾아보기를 클릭 한 후 디렉토리 찾아보기가 사용 가능한지 확인했지만 여전히이 오류가 발생합니다. 알아낼 수 없습니까?

방금 만든 웹 사이트 프로젝트가 이상하다고 생각한 IIS 관리자의 기본 웹 사이트에 나열되지 않았습니다.

이 오류를 어떻게 제거합니까?


프로젝트가 IIS를 사용하도록 구성되어 있습니까? 아니면 IIS Express? 아니면 카시니?
Kris Vandermotten

브라우저에서 실행 했거나 보았습니까 ? 다른 두 가지. MVC 프로젝트 인 경우 브라우저에서 를 보려고했을 수 있습니까? view
christiandev

제어판 \ 모든 제어판 항목 \ 프로그램 및 기능 \ Windows 기능 켜기 / 끄기 \ 인터넷 정보 서비스 \ World Wide Web 서비스 \ 응용 프로그램 개발 기능 \ ASP.NET 에서 ASP.NET 4.5 또는 ASP.NET 을 활성화했는지 확인하십시오. 응용 프로그램 풀 설정에 따라 4.5 또는 ASP.NET 3.5
Bimal Das

답변:


142

이것을 웹 구성 파일에 유지 한 다음 add value = "yourwebformname.aspx"의 이름을 바꾸십시오.

<system.webServer>
    <defaultDocument>
       <files>
          <add value="insertion.aspx" />
       </files>
    </defaultDocument>
    <directoryBrowse enabled="false" />
</system.webServer>

그밖에

<system.webServer>
    <directoryBrowse enabled="true" />
</system.webServer>

1
나는이 프로젝트를 몇 달 동안 노력해 왔으며 결코이 라인이 필요하지 않았습니다. 오늘 사이트를 게시했는데 더 이상 디버그에서 실행되지 않습니다 !!! 이 줄을 추가하면 다시 작동합니다! SVN을 확인했습니다. 이전에는 필요하지 않았습니다. WTF !? 어쨌든 감사합니다, 한 시간 만 낭비했습니다 :)
Percy

HTTP 오류 500.22-내부 서버 오류가 발생합니다.
Bryan Labuschagne

40

이 문제는 웹 사이트에 Directory Browsing기능이 설정되어 있지 않고 기본 문서가 구성되어 있지 않기 때문에 발생 합니다. 이 문제를 해결하려면 다음 방법 중 하나를 사용하십시오. 이 문제를 해결하기 위해 MS 지원 페이지에 언급 된 방법 1의 단계 와 권장 방법을 따랐습니다 .

방법 1 : IIS에서 디렉터리 찾아보기 기능을 사용하도록 설정 (권장)

  1. IIS 관리자를 시작하십시오. 이렇게하려면 시작, 실행을 차례로 누르고 inetmgr.exe를 입력 한 다음 확인을 누릅니다.

  2. IIS 관리자에서 서버 이름, 웹 사이트를 차례로 확장 한 다음 수정하려는 웹 사이트를 클릭합니다.

  3. 기능보기에서 디렉토리 찾아보기를 두 번 클릭하십시오.

  4. 작업 창에서 사용을 클릭합니다.

그래도 문제가 해결되지 않으면 디렉토리 목록 문제와 다른 문제 일 수 있습니다. 아래 단계를 따르십시오.

방법 2 : 기본 문서 추가

이 문제를 해결하려면 다음 단계를 수행하십시오.

  • IIS 관리자를 시작하십시오. 이렇게하려면 시작, 실행을 차례로 누르고 inetmgr.exe를 입력 한 다음 확인을 누릅니다.
  • IIS 관리자에서 서버 이름, 웹 사이트를 차례로 확장 한 다음 수정하려는 웹 사이트를 클릭합니다.
  • 기능보기에서 기본 문서를 두 번 클릭하십시오.
  • 작업 창에서 사용을 클릭합니다.
  • 파일 이름 상자에 기본 문서의 이름을 입력 한 다음 확인을 클릭합니다.

방법 3 : IIS Express에서 디렉터리 찾아보기 기능 활성화

참고이 방법은 IIS Express를 사용할 때 문제가 발생하는 웹 개발자를위한 것입니다.

다음과 같이하세요:

  • 명령 프롬프트를 열고 컴퓨터의 IIS Express 폴더로 이동하십시오. 예를 들어 명령 프롬프트에서 다음 폴더로 이동하십시오. C:\Program Files\IIS Express

  • 다음 명령을 입력 한 후 Enter를 누르십시오.

    appcmd set config /section:system.webServer/directoryBrowse /enabled:true


이 답변을 수락해야합니다. 방법 2가 나를 위해 일했습니다. 처음에는 빈 웹 사이트를 만든 다음 "WebForm1.aspx"라는 웹 양식을 추가했습니다. 따라서 기본 문서 목록에 해당 이름을 추가해야합니다. 감사합니다.
노바 토

31

cmd로 이동하여 다음을 입력하십시오.

x64 OS : % windir % \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_regiis.exe -ir

x32 OS의 경우 : % windir % \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe -ir

이것은 올바른 버전을 설치하고 IIS는 MVC 디렉토리 탐색을 이해합니다


% WINDIR % \ Microsoft.NET \ Framework64 \ v4.0.30319 \ 다음 aspnet_regiis.exe -ir이 내 64 비트 시스템과 MVC 응용 프로그램 나를 위해 일한
아마르 Gadekar

x64에 대한 명령도 내 asmx 웹 서비스에서 발생한 문제를 해결하기 위해 일했습니다.
Cavid

24

이 문제에는 여러 가지 이유가있을 수 있습니다. IIS 8.5에서 나를 위해 일한 것은 다음과 같습니다.

단계

  1. 검색 창에 "창 기능 켜기 / 끄기"를 입력하십시오.
  2. 서버 관리자에서 "역할 및 기능 추가"를 클릭하십시오.
  3. 마법사에서 웹 서버로 아래로 스크롤하여 : 웹 서버-> 응용 프로그램 개발을 선택하십시오. 스크린 샷과 같이 목록에서 CGI를 제외한 모든 항목을 선택하십시오.

여기에 이미지 설명을 입력하십시오

  1. 마지막으로 다음을 누르고 설치하십시오.
  2. IIS를 다시 시작하십시오.

귀하의 웹 사이트가 작동하기 시작할 수 있습니다.


18

시작 페이지를 설정하십시오.

이 문제가 발생했을 때 솔루션 탐색기로 이동하여 처음보고 싶은 페이지 (내 경우에는 "Home.aspx)를 찾은 다음 마우스 오른쪽 단추를 클릭하고"시작 페이지로 설정 "을 선택했습니다. Visual Studio 2012 Professional에서 사용되었으며 Firefox에서 실행했습니다.


17

web.config파일에 다음 설정을 추가 하십시오.

<system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>

2
HTTP 오류 500.22-내부 서버 오류
Bryan Labuschagne

webconfig 파일 에이 코드를 추가 한 후 내 문제가 해결되었습니다. 감사합니다.
yadavr

17

방금 web.config 파일 에이 코드 스 니펫을 붙여 넣고 오류가 해결되었습니다.

<system.webServer>
    <directoryBrowse enabled="true" />
</system.webServer>

10

나는 이것에 대한 하나의 빠른 치료법을 가지고 있습니다. 실제로 웹 페이지를 시작 페이지로 설정하지 않았기 때문에이 오류가 발생했습니다. 아래와 같이 설정된 시작 페이지로 웹 페이지 (html / aspx)를 수행했을 때이 오류가 수정되었습니다.여기에 이미지 설명을 입력하십시오

이 솔루션이 다른 사람들에게 도움이 될지 모르겠습니다.


8

빈 웹 사이트 템플릿은 Web.config 파일을 포함하지만 다른 파일은 포함하지 않는 ASP.NET 웹 사이트를 만듭니다. 찾아보기 또는 실행할 때 표시 할 기본 페이지가 없음을 의미합니다.

이 오류 메시지는 IIS에서 기본 문서를 올바르게 설정 및 구성하지 않았 음을 의미합니다.

이것이 구성되면 오류 메시지가 사라집니다.


빈 웹 사이트에 마스터 페이지를 추가했으며 코드없이 실행을 클릭하면 여전히 오류가 발생합니다. 실행하기 위해 무엇을해야할지 잘 모르겠습니다.
Aindriu


빈 웹 사이트에 기본 페이지가 없습니다. C # 책의 예를 따르고 있습니다. 기본 페이지를 추가하면 웹 브라우저에 페이지가로드됩니다. 그러나 예제는 마스터 페이지 만 사용했습니다. 왜 작동하지 않는지 이해할 수 없습니다. 매우 간단한 예입니다.
Aindriu

8

IIS의 사이트에서 :

  1. '고급 설정'을 선택하십시오
  2. 그런 다음 응용 프로그램 풀에 대해 "ASP.NET v4.0"을 선택하십시오.

예를 들어 이미지


2
이것은 OP의 질문에 대답하지 않습니다. IIS에서 사이트가 사용하는 응용 프로그램 풀을 변경해도 사이트가 디렉토리 내용을 나열하거나 나열하지 않도록 구성되는 방법에는 영향을 미치지 않습니다. 대신 web.config 파일의 구성과 관련이 있습니다.
JNYRanger

8

제어판> Windows 기능 켜거나 끄기

인터넷 정보 서비스> 월드 와이드 웹 서비스> 응용 프로그램 개발 기능

두 가지 옵션을 활성화

.NET 확장 성 3.5
.ASP.NET 3.5

아래의 여기에 이미지 설명을 입력하십시오



5

필자의 경우 빈 Web Api 프로젝트를 만든 후 동일한 오류가 발생했습니다.

App_Start 폴더 에서 RouteConfig.cs 를 편집하여 해결했습니다. :)

코드 판독 줄을 바꿨습니다.

defaults: new { action = "Index", id = UrlParameter.Optional }

다음과 같이 :-

defaults: new { controller = "Index", action = "Index", id = UrlParameter.Optional }

색인 액션을 먼저 호출하려는 컨트롤러를 지정해야했습니다.

글쎄, 위의 모든 응답으로 원하는 경우 내 사건을 해결하지 못했습니다.

  • web.config 에서 디렉토리 찾아보기 사용 하면 색인 파일이 없을 때 PHP와 마찬가지로 프로젝트의 모든 파일과 폴더가 나열됩니다.
  • 설정 의 defaultDocument이 또한 나를 위해 일을하지 않았다 어떻게 든 여전히 HTTP 오류 403.14있어 (왜 아직 아무 생각이 없음)

내 상황과 비슷한 상황에 처한 사람이 있다면 시도해보십시오.


이것은 내가 필요한 대부분의 대답이었습니다. 그러나 컨트롤러 이름은 MVC 응용 프로그램에 대해 생성 된 것과 일치해야합니다. 컨트롤러 이름 (컨트롤러 IndexController를 호출하면 작동합니다)-컨트롤러의 작업 이름 기본값은 Index이어야하며 모두 묶여 있습니다. 누구나 디렉토리 탐색을 사용하는 것은 좋은 생각이 아닙니다. 누구나 사이트 내용을 전체적으로 탐색 할 수 있기 때문입니다.
마크 W. 미첼


4

필자의 경우 webapp이 .NET v4이고 응용 프로그램 풀이 .NET v2로 구성되어 있기 때문에이 오류가 발생했습니다.

응용 프로그램 풀을 두 번 클릭하면 원하는 .NET Framework 버전을 선택할 수있는 팝업 창이 나타납니다.


4

SOLVED
검색 "Windows Feature"시작에 ->
클릭 "turn features on and off"->
확장 "Internet Information Services"
모든 하위 폴더에있는 모든 progrm을 확인하고
"OK"를 클릭하여
이 모든 문제가 해결됩니다. 여기에 이미지 설명을 입력하십시오


3

나는이 단계에서 문제를 해결했다.

  1. IIS 관리자 열기
  2. 응용 프로그램을 클릭하십시오
  3. 디렉토리 찾아보기를 클릭하십시오.
  4. 기능 열기를 클릭하십시오 (오른쪽에 동작 아래에 표시됨)
  5. 사용을 클릭하십시오

2

이것은 bum applicationhost.config 항목으로 인해 발생할 수 있습니다.

IIS Express가 실행 중이면 중지하십시오 (Windows 시스템 트레이에서 연한 파란색 스크롤 아이콘을 마우스 오른쪽 단추로 클릭하고 종료).

프로젝트의 속성> 웹으로 이동하여 프로젝트 URL이 올바른지 확인하십시오. https URL의 경우 유효한 범위의 포트 번호를 포함해야합니다. 올바른 URL은 다음과 같습니다 https://localhost:44300/.. 이제 URL 옆에있는 "가상 디렉토리 만들기"버튼을 누르십시오. applicationhost.config에 새 항목이 추가됩니다.

프로젝트를 다시 시작하면 더 이상 오류가 발생하지 않기를 바랍니다.


2

몇 년 후 이미 답이있을 것입니다. 그러나 다른 누군가가 미래에 답을 찾고있는 경우.

내 문제는 web.config에 아무 것도 필요하지 않았습니다. 나는 그것이 이전에 일했던 것처럼 내가 필요하다고 생각하지 않았습니다.

폴더 이름이 페이지와 동일하지 않은지 확인하십시오. "blog"라는 폴더와 "blog.aspx"라는 페이지가 있으며 폴더를로드하려고했습니다. 링크 에서이 폴더를 발견하고 폴더를 blogContent로 변경했습니다. 이제 잘로드됩니다.

검색어의 첫 번째로 여기에 사본을 게시하고 있습니다.


2

Visual Studio의 잘못된 열린 탭에있는 동안 IIS의 Visual Studio에서 프로젝트를 실행하면 문제가 발생할 수 있으므로 솔루션에서 올바른 탭 (브라우저에서 테스트하려는 웹 양식)을 열거 나 다른 사용자가 제안한대로 다른 답변은 홈페이지로 설정하려는 웹 양식을 마우스 오른쪽 버튼으로 클릭 한 다음 '시작 페이지로 설정'을 클릭하십시오.


1

제 경우에는 Microsoft.Owin.Host.SystemWeb덩어리 가 빠져 있었습니다.


1

솔루션 탐색기에서 프로젝트를 마우스 오른쪽 버튼으로 클릭 한 다음 새 항목 추가를 클릭하고 HTML 페이지를 추가하고 색인으로 이름을 지정하십시오.


1

나의 경우에는

응용 프로그램 풀에서 .NetFrameWork 버전을 V4.0으로 설정하고 문제를 해결했습니다 ....


1

이 그림에서 볼 수 있듯이 IIS의 응용 프로그램 개발 부분을 서버에 설치해야합니다.여기에 이미지 설명을 입력하십시오


0

여러 가지 이유로 발생할 수 있습니다. 위의 모든 것을 시도했지만 여전히 같은 오류가 발생하면 하나 더 해결책이 있습니다.

이것이 일어날 수있는 또 다른 이유는

  1. 새로운 솔루션을 실행하기 전에 동일한 코드 기반을 실행중인 경우이 오류가 발생할 수 있습니다. 그 이유는 IIS Express가 응용 프로그램 시작 URL에 물리적 경로가 등록되어있는 기존 솔루션과 동일한 포트에서 실행하려고하기 때문입니다.
  2. IIS가 솔루션을 실행하기위한 실제 경로를 파악할 수 없으므로 응용 프로그램을 시작하는 데 필요한 모든 dll을 찾지 못할 수 있습니다.

솔루션 :

  1. 응용 프로그램 포트를 기본값으로 변경하십시오. 예를 들어, http://localhost/대신에 사용하십시오.http://localhost:25836/

  2. 이전 응용 프로그램에 기본 포트를 이미 사용한 경우 다른 포트로 변경하십시오. 예 : http://localhost:25364/대신http://localhost/

이렇게하면 IIS / IIS Express가 실행하려는 최신 응용 프로그램의 기본 bin 경로를 가리켜 응용 프로그램을 시작하는 데 필요한 모든 dll이있게됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.