문제

사전 컴파일 된 ASP.NET 2.0 사이트 (예 : Visual Studio 2005의 "Build-> Publish 웹 사이트"기능을 사용하여 서버에 복사)를 사용하고 있습니다. 일반적으로 상세한 모든 오류를 잡아서 기록하지만 최근에는 다른 정보가없는 다음 오류를 받고 있습니다.

어셈블리 'app-web-rp2eml-j'를로드 할 수 없습니다. 페이지에 액세스하기 전에 컴파일되어 있는지 확인하십시오.

이제 'App-web-rp2eml-j'파일입니다 해야한다 사전 컴파일 된 사이트에 대해 생성 된 BIN 폴더의 DLL. 내 주요 질문은 ASPX 페이지가 해당 DLL을 찾고 있는지 어떻게 알 수 있습니까? 사이트를 다시 게시하고 사이트를 완전히 지우고 다시 게시하려고 시도했지만 문제는 사라지지 않습니다.

문제를 해결할 때이 오류 메시지에 대한 대부분의 답변은 IIS가 1.1 대신 ASP.NET 2.0을 사용하도록 설정되어 있는지 확인합니다. 이것은 내 문제가 아닙니다.

참고 1 : 사이트는 모두 작동하는 것처럼 보이지만 분명히 찾을 수없는 한 페이지가 깨졌습니다.

참고 2 : 위의 파일 이름에는 대시 대신 밑줄이 있어야하지만 밑줄 사이의 텍스트를 이탤릭체로 변경하고 있습니다.

도움이 되었습니까?

해결책

언급 된 DLL이 빈 디렉토리에 존재합니까? 당신은 그 부분을 이탤릭체로 만들었으므로 그렇지 않은 것으로 생각됩니다. 이는 오류가 임시 파일 폴더에서 DLL을 참조한다는 것을 의미 할 수 있습니다.

ASP.NET 임시 파일 폴더의 하나 이상의 DLL이 손상된 경우이 문제가 발생할 수 있습니다. 가상 디렉토리에있는 DLL에 변경 사항이없는 경우 ASP.NET은 여기에서 파일을 새로 고치지 않습니다. 내 서버에서 가끔씩 발생합니다.

내 해결책은 다음과 같습니다.

  1. 서버에서 IIS 서비스를 1 분 정도 중지하십시오.

  2. ASP.NET 임시 파일 폴더 (일반적으로 "%windir% microsoft.net framework temporary asp.net files myApplicationName"에 위치) 폴더 내의 모든 파일을 지우십시오.

  3. 내 사이트를 구성된 가상 디렉토리에 게시하고 업로드하십시오.

  4. IIS 및 기타 서비스를 다시 시작하십시오.

이 간단한 4 단계 프로세스는 과거에 저에게 매우 잘 작동했으며 시도해 볼 가치가 있습니다.

그러나 기본 질문에 답하기 위해 DLL을 "리버스 엔지니어"하는 두 가지 방법이 있습니다.

  1. ildasm으로로드하고 포함 된 클래스를 확인하십시오.
  2. 반사판을 사용하여 DLL에 포함 된 모든 클래스 파일을 폴더에 저장하십시오.

그러나 각 DLL에 많은 클래스 파일이 포함될 수 있고 "ASPX 페이지가 해당 DLL을 찾고있는"에 대한 단서가 없기 때문에 이것이 문제를 해결할 것인지 의심됩니다.

다른 팁

Global.asax 이벤트 application_onerror의 오류에 대한 자세한 정보를 얻을 수 있으므로 스택 추적을 볼 수 있습니다.

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