사전 컴파일 된 ASP.NET 웹 응용 프로그램 : 오류“System.Web.httpException 파일 filename.aspx가 사전 컴파일되지 않았으며 요청할 수 없습니다.”

StackOverflow https://stackoverflow.com/questions/413221

  •  03-07-2019
  •  | 
  •  

문제

ASP.NET 3.5 웹 애플리케이션 (웹 사이트가 아님)의 Visual Studio 2008 템플릿을 사용하여 웹 배포 프로젝트를 만들었습니다.

배포에 필요한 파일을 만든 프로젝트를 컴파일했습니다. 결과 폴더 (빈, 정적 파일 및 모든 폴더가 ASPX 자리 표시기 등을 가진 모든 폴더)를 응용 프로그램을 테스트하려는 스테이징 서버에 복사했습니다.

만약 내가 ~하지 않다 옵션을 표시하십시오 "이 사전 컴파일 된 사이트를 업데이트 할 수 있도록하십시오", 브라우저에로드하는 모든 페이지 에서이 오류 메시지가 표시됩니다.

System.Web.HttpException file PAGENAME.aspx has not been pre-compiled, 
and cannot be requested.

스택 추적의 마지막 줄 :

System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(
  VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, 
  Boolean allowBuildInPrecompile) +8756366

옵션을 확인하면 모든 것이 정상입니다 (실제 ASPX/ASCX가 원래 형태로 여전히 존재하기 때문에).

내가 여기서 무엇을 놓치고 있는지 아십니까? 복사하는 것을 잊어 버린 설정이나 특수 파일이 있습니까?

고맙습니다!

메모:

  • 타사 어셈블리에 대한 몇 가지 언급이 있습니다
  • 스테이징 서버에서 빈 폴더를 확인했습니다. 여기에는 모든 클래스가 포함 된 사전 컴파일 된 어셈블리가 포함되어 있습니다 (I 반사판을 사용하여 어셈블리를 분석했습니다).
도움이 되었습니까?

해결책

모든 ASPX 파일에는 만 포함되어야합니다

이것은 사전 컴파일 도구에 의해 생성 된 마커 파일이며 삭제해서는 안됩니다!

빈 폴더의 모든 것을 삭제하고 웹을 다시 게시하십시오. 게시 한 디렉토리에서 파일을 가져와야합니다.

복사해야합니다 .compiled 빈 폴더에 포함 된 파일도 있습니다.

다른 팁

레코드의 경우 ".compiled"파일을 복사하는 것을 잊었습니다.MSDN 문서 : ASP.NET 사전 컴파일 중 파일 처리):

ASP.NET 웹 응용 프로그램의 실행 파일의 경우 .compiled 파일 이름 확장자가있는 컴파일러 어셈블리 및 파일. 어셈블리 이름은 컴파일러에 의해 생성됩니다. .compiled 파일에는 실행 가능한 코드가 포함되어 있지 않습니다. 대신 ASP.NET이 적절한 어셈블리를 찾는 데 필요한 정보 만 포함되어 있습니다.

사전 컴파일 된 응용 프로그램이 배포 된 후 ASP.NET은 BIN 폴더의 어셈블리를 사용하여 요청을 처리합니다. 사전 컴파일 출력에는 페이지의 자리 표시 자로 .aspx 또는 .asmx 파일이 포함됩니다. 자리 표시 자 파일에는 코드가 없습니다. 특정 페이지 요청에 대해 ASP.NET을 호출하는 방법을 제공하기 위해서만 존재하며 파일 권한을 설정하여 페이지에 대한 액세스를 제한 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top