[.net-4.0] IIS 7.5의 ASP.NET MVC

Visual Studio 2010 RC를 사용하여 Windows 7 Ultimate (64 비트)를 실행하고 있습니다. 최근에 VS와 함께 제공되는 dev 서버 대신 IIS에서 내 앱을 실행 / 디버깅하도록 결정했습니다.

그러나 MVC 앱을 실행할 때마다 다음 오류가 발생합니다.

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

에러 정보

모듈 디렉토리 목록 모듈

알림 ExecuteRequestHandler

처리기 StaticFile 오류

코드 0x00000000 요청

URL http : // localhost : 80 / mySite /

실제 경로 C : \ myProject \ mySite \

로그온 방법 익명 로그온

사용자 익명

내가 배치 default.aspx디렉토리에 파일을 나는 다음과 같은 오류가 발생했습니다 :

HTTP 오류 500.21-내부 서버 오류 처리기 “PageHandlerFactory-Integrated”의 모듈 목록에 잘못된 모듈 “ManagedPipelineHandler”가 있습니다.

이 작업을 수행하기 위해 잊어 버린 다른 단계가 있습니까?

참고 : VS 2010 RC를 설치 한 후 IIS 7.5를 설치했습니다. Visual Studio 2010에서 MVC 프로젝트의 “속성”에있는 “웹”탭 아래에 내장 된 “가상 디렉터리 만들기”단추를 사용했습니다. 응용 프로그램이 ASP.NET 4 응용 프로그램 풀을 사용하고 있는지 확인했습니다.

다음은 IIS의 설치된 기능입니다.

대체 텍스트



답변

ASP.NET 4는 IIS에 등록되지 않았습니다. 커맨드 라인 / 실행에서 다음 명령을 실행해야했습니다.

32 비트 (x86) Windows

% windir % \ Microsoft.NET \ Framework \ v4.0.30319 \ aspnet_regiis.exe -ir

64 비트 (x64) Windows

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

David Murdoch의 의견에서 참고하십시오.

이 답변이 게시 된 이후 .net 버전이 변경되었습니다. % windir % \ Microsoft.NET \ Framework64 디렉토리에있는 프레임 워크 버전을 확인하고 실행하기 전에 명령을 적절히 변경하십시오 (현재 v4.0.30319 임).


답변

web.config에 다음 사항이 있습니다.

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


답변

web.config에 다음이 설정되어 있는지 확인하십시오.

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

더 나은 솔루션 :

위의 솔루션은 절대적으로 잘 작동하지만 모든 요청 (.jpg .gif .css .html .pdf 등의 모든 요청에서도)에 등록 된 모든 HTTP 모듈을 실행하고 분명히 리소스를 낭비하므로 다른 문제가 발생할 수 있습니다. 대신에

<system.webServer>
<modules>
  <remove name="UrlRoutingModule-4.0"/>
  <add name="UrlRoutingModule-4.0" type="System.Web.Routing.UrlRoutingModule, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" preCondition="" />
</modules>
</system.webServer>

preCondition 속성이 비어 있는지 확인하면 모든 요청에서 실행됩니다. [더 읽기] ( http://www.britishdeveloper.co.uk/2010/06/dont-use-modules-runallmanagedmodulesfo.html , “원본 게시물 읽기”)


답변

누군가 Global.asax 파일 이 더 이상 루트 폴더에없는 경우이 오류가 발생할 수 있습니다 .


답변

또한이 오류가 발생하여 Windows 서버에서 “HTTP 리디렉션”이 설정되지 않았 음을 발견했습니다. 이 블로그 게시물은 이것을 지적합니다 : http://blogs.msdn.com/b/rjacobs/archive/2010/06/30/system-web-routing-routetable-not-working-with-iis.aspx


답변

사랑스런 예수님. 위의 모든 것을 시도했지만 설정이 동일하다는 것을 알았습니다. 문제가있는 경우 다른 해결책을 찾으십시오.

http://support.microsoft.com/kb/980368

시스템에이 KB를 설치하십시오. 404가 표시되면이 업데이트가 없기 때문일 수 있습니다. isapi 모듈을 찾을 수없고 이것 없이는 할 수있는 일이 많지 않습니다!


답변

또한 AppPool통합 모드로 전환 할 수 있습니다 . Thnx에서 Michael Bianchi ( https://stackoverflow.com/a/7956546/1143515 )에는 밑줄 만 표시하고 싶습니다.