2009-10-09 4 views
1

저는 지난 며칠간 IIS6에서 IIS7로 상당히 큰 웹 응용 프로그램을 마이그레이션하려고 시도했지만 IIS7은 aspx 페이지를로드하지 못합니다.IIS7에서 aspx 페이지를로드하지 못했습니다.

응용 프로그램은 반사 및 웹 서비스를 많이 사용하는 .net 3.5 웹 응용 프로그램입니다. 웹 UI (aspx 페이지) 및 webAPI (asmx 페이지)의 두 가지 주요 구성 요소 (각 응용 프로그램 풀을 공유하지만 IIS7에서 자체 웹 사이트가 있음)를 사용합니다.

webAPI 부분은 완벽하게 실행됩니다 (브라우저에서 테스트 할 수없는 몇 가지 사항이 있습니다). 웹 UI 페이지에는 고정 된 HTM 페이지가 잘로드됩니다. 문제는 우리가 aspx 페이지 (aspx 페이지)를 보려고하면 모든 것이 멈추게됩니다. 몇 분 후에 IIS 5010 경고 (ping을 무시하는 작업자 프로세스)가 발생할 때까지 이벤트 뷰어에 오류가 기록되지 않습니다.

우리는 두 가지 방법으로 응용 프로그램을 마이그레이션하려고 시도했습니다

  1. 을 수동 : 우리는 필요한 모든 파일을 이동하고 웹 사이트로 다음 가상 디렉터리를 설정 변환됩니다. 결과 : 작업자 프로세스가 단일 코어의 100 %를 차지하고 수동으로 종료 될 때까지 수동으로 종료 될 때까지
  2. 자동으로 : www.iis.net에서 MSDeploy 응용 프로그램을 활용하여 전체 IIS6 웹 서버를 보관하고 빈 IIS7에 압축을 풉니 다. 설치하십시오. 우리는 401.2 오류를 없애기 위해 Forms Auth를 해제해야했지만 그 결과 WebAPI 구성 요소는 여전히 잘 작동했지만 웹 UI 작업자 프로세스가 단일 코어의 100 %를 차지하는 대신 성장했습니다 필요한 메모리의 약 1/3까지 아무 것도하지 않아도됩니다.

어느 쪽이든, 사용자의 관점에서 어떤 일이 발생했는지는 마찬가지였습니다.

관리 코드를로드하지 않는 것 때문에 디버거를 작업자 프로세스에 연결할 수도 없습니다.

세부 사항 :

  • .NET 프레임 워크 : V3.5
  • CLR 버전 : 2.0
  • IIS 인증 모드 : 익명
  • OS 아치 : 64
  • 앱 아치 : 86
  • 클래식 파이프 라인과 통합 파이프 라인 모두에서 발생합니다.

주 :

  • 새로운 웹 프로젝트는 IIS7에서 잘 작동하는 것 그리고, 물론, XML 웹 서비스는 만든 임시 ASP.net 된 DLL에 저장됩니다
  • 일시적으로 DLL을 잘하다 폴더, 심지어는 작업자 프로세스가 관리되는 코드를 포함하지 않는 것처럼 보입니다.웹 UI 프로젝트에 추가
  • 새로운 페이지도 같은 동작이

업데이트 (시도 다치게하지 않았나요) 표시 : 우리는 하나의 어셈블리에 문제가 좁혀했습니다

  • . 제 3 자 웹 컨트롤을위한 래퍼입니다. 나는 그것을 대체 할 것으로 생각하고있다. 우리는 그것이 문제를 해결하는지 보게 될 것이다.
+0

IIS7에서 "실패한 요청 추적"을 설정하십시오. 그건 좀 더 많은 정보를 줄거야. – David

+0

나는 너무 오래 걸리는 실패한 요청 추적을 받았지만 그게 전부입니다. 다른 오류는 없습니다. 추적에서 의심스러운 유일한 점은 거의 즉시 asp 요청을 대기열에 포함시키고 대기열에서 제외한다는 것입니다. –

+0

또 다른 재미있는 요청 추적은 실제로 요청 상태에 대해 200을보고하고 있습니다. : \ –

답변

0

봅니다 ASP.NET을 다시 등록 :

aspnet_regiis -i 
:

http://msdn.microsoft.com/en-us/library/k6h9cz8h(VS.80).aspx 

전형적인 명령 줄 구문이 프레임 워크와 유형의 ASP.NET 2.0 버전으로 라인을 명령하는 것

+0

aspnet_regiis는 IIS7에 사용할 수 없습니다. 대신 서버 구성을 사용하여 ASP.NET을 설치해야합니다. 내가 IIS7에 경우 aspnet_regiis -i를 사용하려고하면이 오류가 발생합니다 : C를 : \ WINDOWS \ Microsoft.NET 프레임 워크 \ \ V2.0.50727> 다음 aspnet_regiis.exe -i 오류는 IIS가 설치되지 않았 음을 나타냅니다 기계. 이 도구를 사용하기 전에 IIS를 설치하십시오. ASP.NET (2.0.50727) 설치 완료. –

+0

음, 약간의 실수를 저질렀습니다. 64 비트 IIS가있을 때 32 비트 프레임 워크를 사용하려고했습니다. 64 비트 aspnet_regiis를 사용했지만 문제가 해결되지 않았습니다. 시스템의 동작은 변경되지 않습니다. –

0

응용 프로그램 풀에 "클래식"파이프 라인 모드를 사용하고 있습니까? "통합"IIS7의 기본값이며 구성 측면에서 변경 사항이 도입되었습니다. (한 가지 예가 web.config에서 다른 구성을 필요로하는 HttpHandlers입니다).

"클래식"은 IIS6 응용 프로그램 풀을 모방 한 것으로 IIS6과 동일한 구성으로 작동해야합니다.

통합 파이프 라인을 사용하려는 경우 구성 파일을 자동으로 변환하는 몇 가지 도구가 있습니다.

Scott Hanselman이 그의 도구 중 일부를 다루고 있습니다. blog post.

+0

우리는 같은 방법으로 두 가지 방법을 시도했습니다. –

관련 문제