2011-09-26 3 views
2

IIS6에서 호스팅되는 .net 3.5 응용 프로그램 (MVC 및 WebForms 혼합)이 있습니다. IIS6에서 작동하게하려면 * .MVC가 aspnet_isapi.dll에 매핑되도록 IIS에 사용자 지정 매핑을 추가해야했습니다. 우리가하지 않도록 같은 일을하려고했던, 즉 클래식 모드 풀링, IIS7에이 웹 응용 프로그램을 설정하고 지금 <host>\someController.mvc\actionIIS7에서 aspnet_isapi.dll에 * .MVC 매핑

을하지만 :

그래서 우리 URL의이 같은 찾고 끝낼 것 응용 프로그램에 대해 아무 것도 변경하지 않아야합니다.

IIS7에서 * .MVC 처리기 매핑을 추가 한 후에도 여전히 IIS7을 선택하지 않은 것 같습니다. MVC 페이지로 이동할 때마다 404 개의 오류가 발생합니다. 그러나 .aspx 페이지가 제대로로드됩니다.

가까이 검사에 실패한 요청 추적 내가 원에서 실행 해요 다음 ModuleName="IIS Web Core", Notification="MAP_REQUEST_HANDLER", HttpStatus="404", HttpReason="Not Found", HttpSubStatus="0", ErrorCode="The system cannot find the file specified. (0x80070002)", ConfigExceptionInfo=""

에 대해 불평을 유지합니다. 우리는 이것을 다른 IIS7 머신에서 설정할 수 있었지만, 아직 IIS7 머신을 작동시키지 않으려 고 설정하려고 시도하고있었습니다. 나는 정말로 내가 무엇을 놓치고 있는지 모른다. 그것의 매핑 규칙은 전혀 트리거하지 않습니다. URL에 파일 이름에 무작위로 입력하는 경우에도 동일한 오류가 발생합니다.

답변

3

난 그냥이 처리하고, 정말로 나를 위해 그것을했다하는 것은 전체 MvcHttpHandler의 치우는 (당신의

<system.webServer>/<handlers> 

구성 태그에서 제거).

MSDN은 모든 요청 (IIS7 +에서 가능)에 대해 UrlRoutingModule을 사용할 수없는 경우에만 유용하므로 IIS6에 유용하며 (왜 적절하게 라우팅하려면 * .mvc 확장이 필요한지) .

그래서 당신의 핸들러에 MvcHttpHandler 참조를 제거하고 확인합니다

    • 는 통합 모드 (안 클래식)과 응용 프로그램 풀에서 실행되는 응용 프로그램이 당신은 모듈 속성 runAllManagedModulesForAllRequests이

      <modules runAllManagedModulesForAllRequests="true"> 
      

    는 여전히 (404)의 다음은 전자의 얻는 경우로 설정 "사실" 귀하의 MVC 그것을하고 ither (어느 날 정말 sidetracked : S) 또 다른 이유.