2009-09-28 3 views
3

Visual Studio에서 빌드 된 IIS에서 호스팅되는 WCF 서비스가 있습니다. WCF 서비스 라이브러리는 동일한 Visual Studio 솔루션의 일부인 다른 몇 가지 어셈블리를 참조합니다.WCF 서비스가 GAC에서 참조 된 어셈블리를로드 할 수 없습니다.

모든 어셈블리를 GAC에 배포 한 다음 서비스 클라이언트를 시작하고 참조 된 클라이언트 어셈블리 중 하나를 확인하지 못하는 것을 확인합니다. WCF 서비스 컨스트럭터에 중단 점을 추가 했으므로 정규화 된 이름을 사용하여 참조 된 어셈블리를로드하지 않으므로 GAC에서 찾을 수 없습니다. 직접 실행 창에서 Assembly.Load를 실행하면 IIS 내에서 WCF 생성자로 중단 된 후 공인 된 (publickeytoken 등) 이름을 사용하여 누락 된 DLL을로드 할 수 있습니다.

CLR 또는 내 서비스 라이브러리가 이름을 사용하여 라이브러리를로드하려고하는 이유는 무엇입니까?

답변

0

GAC의 버전이 사용자가 만든 버전과 다른가요? 그렇다면 앱이 특정 버전의 어셈블리를 사용하도록 할 수 있습니다. 의 web.config에 다음을 추가 : DLL이 복사되지 않은 경우

<configuration> 
    ....... 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
    <dependentAssembly> 
     <assemblyIdentity name="SomeLibrary" publicKeyToken="31bfe996bd364e76"/> 
     <bindingRedirect oldVersion="0.5" newVersion="1.0"/> 
    </dependentAssembly> 
    </assemblyBinding> 
    </runtime> 
    ........ 
</configuration> 
+0

아니요, 같은 버전입니다. gac은 솔루션을 빌드하기 전에 완전히 정리됩니다 (혼동을 피하기 위해). 또한 라이브러리의 유일한 버전은 1.0.0.0입니다. – Benson

3

은 내 경험에서 다음

<compilation debug="true"> 
     <assemblies> 
     <add assembly="MyWcfAssembly, Version=1.0.0.0, Culture=neutral, PublicKeyToken=AAAAAAAAAA"/> 

로이 때로는 필요하다는 IIS 웹 응용 프로그램의 Web.config를 업데이트하십시오 로컬이고 GAC에서 읽을 필요가 있습니다.

GAC에 설치된 최신 어셈블리를 사용하려면 웹 페이지의 앱 도메인을 다시로드해야합니다. iisreset을 실행하여 web.config 또는 iis 관리자를 터치하여 앱 도메인을 다시로드 할 수 있습니다.

+0

오늘도 비슷한 문제가 발생하여 @ Ryu의 답변 외에도 미래의 사람들을 위해 뭔가를 지적하기 위해 태그를 자동으로 닫지 않도록하십시오. 즉 이 아니라 입니다. 바보 같지만 놓치기 쉬운 것 ...이 링크 참조 : http://stackoverflow.com/questions/7697741/the-configuration-section-assemblies-cannot-be-read-because-it-is-missing-a-se – KDT

0

때때로 캐싱 문제가 발생합니다. 시스템은 이전에 GAC에서 무언가를 액세스하려고 시도했지만, 그곳에 없었습니다. 다음 번에는 확인하지 않아도된다는 것을 기억합니다.

GAC에 어셈블리를 추가 한 후 IIS 재설정을 시도하십시오.

또한 공개 키 토큰과 일치하는 버전도 일치해야합니다.

0

시도해 볼 수있는 한 가지 방법은 서비스의 정규화 된 어셈블리 이름을 사용하는 것입니다. GAC를 다룰 때 그것이 유일한 방법이라는 나의 이해입니다.

이외에도 Fusion 로그를 통해 응용 프로그램에서 어셈블리를로드하려는 위치와 그 이유를 확인할 수 있습니다. Scott Hanselman이 꽤 좋은 자습서를 가지고 있습니다. how to use them.

관련 문제