2012-04-12 6 views
2

매우 구체적인 페이지에서이 문제가 발생하며이를 수정하는 방법을 모르겠습니다. 나는 이미 여러 가지 질문 (예 : ASP.NET corrupt assembly "Could not load file or assembly App_Web_*"Could not load file or assembly App_Web_xxxxxxxx or one of its dependencies)을 발견하고 해결책을 시도했지만 아무 소용이 없습니다. 요약하자면미리 컴파일 된 ASP.NET 웹 사이트 프로젝트로 파일 또는 어셈블리 App_Web_ *을로드 할 수 없습니다.

은, 여기에 내가 무엇을 시도했다입니다 :

  • 는 ASP 지워짐이 웹 사이트

  • 를 호스팅하는 IIS 웹 사이트를 다시 시작 Web.config의

  • batch="false" numRecompilesBeforeAppRestart="50"을 설정합니다. NET 임시 파일 %windir%\Framework64\v4.0.30319\Temporary ASP.NET Files

  • 실업자

... 및 상기의 임의의 조합이지만, 아무런 소용이 없다. VS에서 사이트를 실행하려고 할 때와 사전 컴파일없이 웹 사이트를 배포 할 때 완벽하게 작동합니다.

  • 사전 컴파일은 웹 배포 프로젝트를 통해 이루어집니다 : 여기

    은 환경의 일부 사양입니다. TFS 또는 I는 프리 컴파일을했다면 중요하지 않습니다 : 파이프 라인 모드가 .NET 4.0

에 통합되어 문제가 지속 버전 4.0.30319

  • AppPool을 설정이되어

  • .NET 이것은 내가 Customer.aspx을 열 때 발생하는 특정 오류입니다 :

    Could not load file or assembly 'App_Web_qxcfa0wv, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.

    이 페이지는 UserManagement.ascx이라는 컨트롤을 등록했으며 ~/Controls/UserManagement.ascx에 있습니다.

    해당 컨트롤에 이라는 다른 컨트롤이 등록되어 있습니다 (~/Controls/Dialogs/UserControl.ascx에 있음).

    마지막 컨트롤은 사용자의 데이터를 캡슐화하는 ~/Controls/User.ascx 컨트롤을 사용합니다. 추가 종속성은 없습니다.

    스택 추적에 따르면 오류는 UserDialog.ascx (<%@ Control ... %> 지시문)의 온라인 1에 있습니다.

    나는 손실에 처해있다. 내 같음~/Controls/Dialogs/UserDialog.ascx이 상위 폴더에있는 컨트롤을 필요로하므로 런타임에 일부 구식 참조가 발생하기 때문에 작동하지 않는다고합니다. 종류의 첫 번째 질문에 문제 설명처럼.

    그러나 ~/Controls/User.ascx 컨트롤을 제외하면이 컨트롤을 테스트 할 수 없습니다. 그 이유는 컨트롤이 다른 컨트롤도 등록하지 않아도 ~/Control/UserDialog.ascx에서 사용되는 다른 컨트롤에서 순환 참조 오류가 발생하기 때문입니다.네임 스페이스 등록 ()은 대부분의 다른 컨트롤에서 사용됩니다.

    나는 순환 참조와 오류가 관련되어 있다고 말할 수 있지만 어떻게 표현할 수는 없다. 전체 종속성 그래프를 그리지 않고.

    아이디어가 있으십니까?

    미리 감사드립니다.

  • +0

    는'~/컨트롤 /'합니까 및/또는'~/Controls/Dialogs /'디렉토리가 서버에 존재합니까? – robertc

    +0

    @robertc : 흠, 나는 그것을 확인하지 않았다. 분명히,'~/Controls /'폴더는 존재하지만'~/Controls/Dialogs /'폴더는 존재하지 않습니다. Strange는'~/Controls/Lists /'폴더 *가 존재하기 때문에 존재하지만 ASPX 페이지를 포함하고 있기 때문에 만들어진 유일한 이유 인 것 같다. VS2010에서'~/Controls/Dialogs /'폴더는 ASCX 파일만을 포함하고 있기 때문에 빌드에없는 이유를 설명 할 수 있습니다 ... – user849924

    +0

    [내 비슷한 질문] 참조 (http://stackoverflow.com/questions/5885534)/asp-net-user-controls-in-a-child-directory-directory-not-found-error) -'ascx' 파일 만 포함 된 각 디렉토리에 빈'placeholder.html' 파일을 생성하는 결과를 낳았습니다. 디렉토리는 서버에 작성됩니다. – robertc

    답변

    1

    웹 프로젝트로 변환하십시오. 라이브러리 및 사용자 정의 컨트롤을 웹 사이트 템플릿과 함께 사용할 때 알려진 문제입니다. 내가 여기를 요약했습니다

    ASP.NET: Web Site versus Web Application Project

    릭 Strahl의 블로그에

    상세 정보 (코멘트를 읽기) :

    Understanding Page Inheritance in ASP.NET 2.0

    +1

    감사! 어떻게되는지 알려 드리겠습니다. 우리가 일반적으로 웹 응용 프로그램 프로젝트를 사용하지 않는 이유는 웹 사이트 모델이 가지고있는 편집 및 계속 작업 때문입니다. 그러나 그 외에는 사용하지 않는 실제 이유가 없습니다. Old_App_Code에 더 이상 발견 할 수없는 컨트롤이 있지만 어쨌든 거기에서 그 컨트롤을 옮기고 싶었습니다. – user849924

    +0

    그것은가는 가장 좋은 방법입니다; 웹 사이트 템플릿의 이점은 모든 probs보다 중요합니다. – IrishChieftain

    +1

    Hrm, 디자이너 파일이 손상되거나 제대로 업데이트되지 않은 것 같습니다. 나는 사이트 전체를 검색하고 컨트롤을 대체했으며, 웹 응용 프로그램을 마우스 오른쪽 단추로 클릭하고 "웹 응용 프로그램으로 변환"을 수행했으며 디자이너 파일에는 아무 것도 발생하지 않았습니다. 문제의 페이지/컨트롤을 만졌을 때만 제대로 재생성 되었습니까? 지금은 작동하지만 웹 앱으로는 아직 작동하지 않습니다. – user849924

    관련 문제