2009-11-18 5 views
0

IIS에서 내 웹 사이트를 보려고 할 때 이상한 오류가 발생합니다.ASP.Net 응용 프로그램의 이상한 GAC 오류

Compilation Error 
Description: An error occurred during the compilation of a resource required to 
service this request. Please review the following specific error details and modify 
your source code appropriately. 

Compiler Error Message: CE29: (CE29) Unable to load assembly C:\Windows\assembly\GAC_64 
\System.EnterpriseServices\2.0.0.0__b03f5f7f11d50a3a\System.EnterpriseServices.dll Not 
a valid .NET executable (Offset and length were out of bounds for the array or count 
is greater than the number of elements from index to the end of the source collection.) 

그것은 닷넷 구성 문제처럼 보이지만 : 나는 새로운 ASP.Net 웹 사이트의 응용 프로그램을 작성하는 경우, 웹 페이지가 오류로 나타 전혀 수정하고 (F5)을 실행하지 않는 나는 그것을 고치는 법을 모른다. .NET 3.5 SP1을 설치하고 IIS 7.0을 Vista Home Premium 64 비트에서 실행합니다. 이 웹 사이트는 2008 Visual Studio Shell에서 실행되는 Delphi Prism을 사용하여 만들어졌습니다. 나는 googled하고 googled했다. 그러나 googled했다. 어떤 도움을 주셔서 감사합니다!

답변

0

프로젝트 참조를 확인하십시오. System.EnterpriseServices를 참조하십니까? machine.config 파일이없는 경우. 어셈블리가 거기에서 참조 된 것일까 요?

1

참조에 System.EnterpriseServices (C : \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ CONFIG)를 추가하면 문제가 해결됩니다. Web.config의에서

또는

제거 참조 당신이 사용하지 않는 경우.

+0

답장을 보내 주셔서 감사합니다. 프로젝트에서 참조되었으므로 제거했습니다. 여전히 같은 오류입니다. 그런 다음 machine.config에 다음 줄을 추가하여도 도움이되지 않았습니다. 적어도 작동합니다. cassini 개발 서버에서. –

0

해당 DLL에 대한 참조를 제거 할 수는 있지만 프리즘은 이유가있을 수 있습니다. 가능한 많은 이유가 있습니다. 아마도 페이지 수준 트랜잭션 지원을 지정했거나 COM interop을 사용하고있는 것일 수 있습니다. 일시적으로 참조를 제거하고 컴파일러에서 불만 사항을 확인하기 위해 전체 다시 작성을 수행하여 이유를 확인할 수 있습니다.

이유가 무엇이든 여전히 어셈블리가 필요하다면 IIS가로드 할 수 있도록 적절한 위치에 적절한 태그를 가져와야합니다.

Windows 탐색기에서 GAC을 열어보십시오. 나는 비스타를 운영하지 않을 것이므로, 당신의 단계가 나의 것보다 다른 경우 나와 함께 감내하십시오. 매끄러운 시작한 다음 c : \ windows \ assembly 입력하십시오. 이 폴더를 보거나 관리하려면 권한이 있어야합니다. 해당 어셈블리를 찾아 사용 가능한 버전을 확인하십시오. .NET 하위 시스템이 응용 프로그램을 64 비트로 jit하려고 시도하고이 어셈블리의 64 비트 버전이 필요한 것 같습니다.

GAC에 해당 어셈블리가 표시되지 않는 경우 (다른 버전이 표시 될 가능성이 높음) 아마 설명 할 수 있습니다.

해결책이 확실하지 않지만 시도해 볼 수있는 두 가지 사항은 시스템의 어딘가에 64 비트 버전의 DLL이 있는지 확인하고 GACUtil/i를 사용하여 GAC에 설치하려고하는 것입니다 . aspnet_regiis.exe -i를 사용하여 IIS 용 ASP.Net을 다시 구성 해보십시오.