2011-10-13 2 views
0

클라이언트가 WOW64를 사용하는 IIS를 실행 중이고 클라이언트가 64 비트 DLL을로드 할 수 없다는 메시지가 표시됩니다.WOW64로 IIS 실행 및 64 비트 DLL로드

이렇게 할 방법이 있습니까?

또한 WOW64로 IIS를 실행하면 모든 .NET 코드가 32 비트 .NET 런타임에서 실행되고 있음을 의미합니까?

답변

1

IIS가 WoW64에서 실행될 32 비트 W3WP.EXE를 시작하도록 구성된 경우 해당 작업자 프로세스 내에서 발생하는 모든 작업은 32 비트 모드에서 발생하므로 32 비트 .NET 런타임.

이것은 32 비트 프로세스와 호환되지 않기 때문에 64 비트 DLL을로드 할 수 없다는 것을 의미합니다. DLL의 32 비트 버전을 제공해야하거나 클라이언트가 32 비트 W3WP.exe를 사용하지 않도록 설정해야합니다.

DLL이 COM DLL이면 COM +에 등록하고 IIS 응용 프로그램에서 out-of-process를 실행하는 추가 옵션이 있습니다. 이것은 32 비트 코드가 COM 호출 메커니즘을 통해 64 비트 코드로 호출 할 수 있다는 것을 의미합니다 (Windows가 사용자를 대신하여 처리합니다).

IIS의 설정은 IIS의 응용 프로그램 풀 속성에서 설정되며 "32 비트 응용 프로그램 사용"입니다. true로 설정하면 32 비트 작업자 프로세스가 강제 실행됩니다. false로 설정하면 64 비트 작업자 프로세스가 활성화됩니다.

관련 문제