[asp.net-mvc] IIS 7의 ASP MVC 결과 : HTTP 오류 403.14-금지

ASP MVC 웹 프로젝트를 개발 중입니다. 이제 IIS7 개발 초기 단계 (일부 기능 확인)에 배포해야하는 요구 사항이 있습니다. 웹 사이트의 URL을 입력하려고 할 때마다 위에서 언급 한 오류 메시지가 나타납니다. (참고 : 개발 시스템 : Vista Home Premium, IIS7)

내가 지금까지 한 일 :

HOSTS 파일 (C : \ WINDOWS \ system32 \ drivers \ etc \ hosts)을 편집했습니다.

두 개의 도메인을 넣습니다 (127.0.0.1 domain1.com 및 127.0.0.1 domain2.com).

c : \ websites \ dirOfApplication 폴더를 만들고 Visual Studio 8에서이 폴더로 배포했습니다.

IIS7에서 호스트 이름 domain1.com 및 위의 응용 프로그램 폴더로 새 사이트를 만들었습니다.

웹 브라우저에 domain1.com 주소를 입력하면 위의 오류가 발생합니다 (HTTP 오류 403.14-금지-웹 서버가이 디렉토리의 내용을 나열하지 않도록 구성되어 있습니다).

나는 무언가를 놓치고 있다고 생각하지만 무엇을 모른다! System.Web.Mvc, System.Web.Abstraction 및 System.Web.Routing 파일을 동일한 결과로 배포하려고했습니다. F5를 누르고 응용 프로그램을 실행할 때마다 정상적으로 작동합니다!



답변

어쩌면 누군가에게 유용 할 수 있습니다 : .NET framework 4.5를 사용하여 내 응용 프로그램을 MVC 4로 변환하고 IIS 7.0을 사용하여 서버에 프레임 워크를 설치하면 질문에 언급 된 것과 동일한 ‘금지’오류가 발생했습니다. 나는 위에 설명 된 모든 옵션을 시도했지만 아무 소용이 없었습니다.

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

내 web.config에서 누락되었습니다. 이것을 추가 한 후 모든 것이 작동했습니다. 단순하지만 간과하기 쉬운 …

편집하다:

물론 위의 해결책은 효과가 있지만 실제로 자원 낭비입니다. Chris Herring이 지적한대로 라우팅 모듈을 추가하는 것이 좋습니다 .

<system.webServer>
  <modules>
    <remove name="UrlRoutingModule-4.0" />
    <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule" preCondition="" />
  </modules>
</system.webServer>


답변

SO에 답변 여기에 , 질문 : 403 – IIS7.5에 대한 기본 MVC 3 배포에 금지

를 실행하십시오 aspnet_regiis -i. 4.0 개의 앱이 작동하려면 종종 그렇게해야한다는 것을 알게되었습니다. 명령 프롬프트를 다음과 같이여십시오 Administrator(명령 프롬프트 아이콘을 마우스 오른쪽 단추로 클릭하고 관리자로 실행을 선택하십시오).

cd \
cd Windows\Microsoft.NET\Framework\v4.xxx.xxx
aspnet_regiis -i

설치 및 등록되면 응용 프로그램이 .NET 4.0으로 설정된 응용 프로그램 풀을 사용하고 있는지 확인하십시오.

업데이트 : 방금이 명령에 문제가 있음을 발견했습니다. -i를 사용하면 모든 응용 프로그램 풀이 ASP.NET 4.0으로 업데이트되었습니다.

를 사용하면 aspnet_regiis -irASP.NET 버전이 설치되지만 웹 응용 프로그램은이 버전으로 변경되지 않습니다. -iru 옵션을 검토 할 수도 있습니다.


답변

나도이 오류에 부딪쳤다. 모든 구성과 권한이 정확했습니다. 그러나 Global.asax를 서버에 복사하는 것을 잊었으므로 403 오류가 발생했습니다.


답변

당신 (나)이하고있는 일에 대해 너무 확신하기 때문입니다!

내 컴퓨터에는 IIS 7이 설치되어 있지만 필요한 ASP.NET 구성 요소 (제어판-> 프로그램-> 켜기 / 끄기-> ASP.NET)가 없습니다.

따라서 이것을 설치하면 문제가 해결되었습니다.


답변

나는 같은 문제가 있었다. 이 Microsoft 지원 기사에서이 문제를 해결했습니다.
https://support.microsoft.com/en-us/help/2023146/mvc-2-and-asp.net-4-web-forms-applications-that-use-url-routing-might-return-http- 404- 오류-처리 할 때 확장 할 수없는 URL-IIS-7 및 IIS-7.5

Windows 제어판 “프로그램 및 기능”응용 프로그램의 “Windows 기능 설정 또는 해제”대화 상자에서 다음 단계를 수행하십시오.

  1. 인터넷 정보 서비스-> 월드 와이드 웹 서비스-> 공통 HTTP 기능 노드로 이동하십시오.
  2. “HTTP 오류 리디렉션”옵션이 선택되어 있는지 확인하십시오.

-또는-

  1. 인터넷 정보 서비스-> 월드 와이드 웹 서비스-> 성능 기능 노드로 이동하십시오.
  2. “정적 컨텐츠 압축”옵션이 선택되어 있는지 확인하십시오. 옵션을 선택한 후 “확인”을 클릭하여 변경 사항을 저장하십시오.

HTTP 오류 리디렉션 모듈 또는 정적 콘텐츠 압축 모듈을 다시 사용하면 ASP.NET과 IIS가 HTTP 파이프 라인 이벤트를 올바르게 동기화합니다. 이를 통해 URL 라우팅 모듈은 확장없는 URL을 처리 할 수 ​​있습니다.


답변

아래에 표시된 다음 설정을 적용하십시오.

1)IIS_IUSRS 사용자 에게 필요한 권한을 부여하십시오 IIS Server(웹 사이트를 마우스 오른쪽 단추로 클릭 한 후 권한 편집> 보안).

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

2) 당신이 사용하는 경우 .NET Framework 4, .NET Framework 버전이 있는지 확인 v4.0Application Pool당신의 웹 사이트 사용합니다.

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

3) Commanp Prompt as를 열고 명령을 administrator실행 iisreset하여 다시 시작하십시오 IIS Server.

도움이 되었기를 바랍니다…


답변

내 경우에는 다음과 같은 접근 방식이 도움이되었습니다.

  1. aspnet_regiis -iWindows\Microsoft.Net\Framework

  2. system.webServer에 모듈 추가

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