어셈블리 바인딩 로그 뷰어에는 어셈블리 바인딩에 대한 세부 정보가 표시됩니다. 이 정보는 .NET Framework가 런타임에 어셈블리를 찾을 수 없는 이유를 진단하는 데 도움이 됩니다. 이러한 오류는 일반적으로 잘못된 위치에 배포된 어셈블리의 결과, 더 이상 유효하지 않은 네이티브 이미지 또는 버전 번호 또는 문화권이 일치하지 않는 결과입니다. 공용 언어 런타임이 어셈블리를 찾지 못하는 경우 일반적으로 애플리케이션에서
중요합니다
관리자 권한으로 fuslogvw.exe 실행해야 합니다.
이 도구는 자동으로 Visual Studio와 함께 설치됩니다. 도구를 실행하려면 관리자 자격 증명과 함께 Visual Studio 개발자 명령 프롬프트 또는 Visual Studio 개발자 PowerShell 을 사용합니다.
명령 프롬프트에서 다음 명령을 입력합니다.
fuslogvw
뷰어에 실패한 각 어셈블리 바인딩에 대한 항목이 표시됩니다. 각 실패에 대해 뷰어는 다음을 설명합니다.
- 바인딩을 시작한 애플리케이션
- 이름, 버전, 문화권 및 공개 키를 포함하여 바인딩이 사용할 어셈블리
- 오류 날짜 및 시간
어떻게...
로그 위치 보기 변경
모든 애플리케이션 유형에 대한 바인딩 오류를 보려면 기본 옵션 단추를 선택합니다. 기본적으로 로그 항목은 wininet 캐시의 디스크에 있는 사용자별 디렉터리에 저장됩니다.
지정한 사용자 지정 디렉터리에서 바인딩 오류를 보려면 사용자 지정 옵션 단추를 선택합니다. 로그 설정 대화 상자의 사용자 지정 로그 위치를 유효한 디렉터리 이름으로 설정하여 런타임에서 로그를 저장할 사용자 지정 위치를 지정해야 합니다. 이 디렉터리를 정리해야 하며 런타임에서 생성하는 파일만 포함해야 합니다. 로깅 실패를 생성하는 실행 파일이 포함된 경우 도구가 실행 파일과 동일한 이름의 디렉터리를 만들려고 하므로 실패가 기록되지 않습니다. 또한 로그 위치에서 실행 파일을 실행하려고 하면 실패합니다.
비고
기본 바인딩 위치는 사용자 지정 바인딩 위치보다 좋습니다. 런타임은 기본 바인딩 위치를 wininet 캐시에 저장하므로 자동으로 정리합니다. 사용자 지정 바인딩 위치를 지정하는 경우 사용자 지정 위치를 정리해야 합니다.
특정 오류에 대한 세부 정보 보기
뷰어에서 원하는 항목의 애플리케이션 이름을 선택합니다.
로그 보기 단추를 클릭합니다. 또는 선택한 항목을 두 번 클릭할 수 있습니다.
이 도구는 선택한 바인딩 실패에 대한 다음 세부 정보를 표시합니다.
바인딩이 실패한 특정 이유(예: "파일을 찾을 수 없음" 또는 "버전 불일치")입니다.
바인딩을 시작한 애플리케이션에 대한 정보(이름, 애플리케이션의 루트 디렉터리(AppBase) 및 프라이빗 검색 경로에 대한 설명(있는 경우)입니다.
도구에서 찾고 있는 어셈블리의 ID입니다.
적용된 애플리케이션, 게시자 또는 관리자 버전 정책에 대한 설명입니다.
어셈블리가 전역 어셈블리 캐시에서 발견되었는지 여부입니다.
모든 검색 URL 목록입니다.
다음 샘플 로그 항목은 실패한 어셈블리 바인딩에 대한 자세한 정보를 보여줍니다.
*** Assembly Binder Log Entry (3/5/2007 @ 12:54:20 PM) ***
The operation failed.
Bind result: hr = 0x80070002. The system cannot find the file specified.
Assembly manager loaded from: C:\WINNT\Microsoft.NET\Framework\v2.0.50727\fusion.dll
Running under executable C:\Program Files\Microsoft.NET\FrameworkSDK\Samples\Tutorials\resourcesandlocalization\graphic\cs\graphicfailtest.exe
--- A detailed error log follows.
=== Pre-bind state information ===
LOG: DisplayName = graphicfailtest.resources, Version=0.0.0.0, Culture=en-US, PublicKeyToken=null
(Fully-specified)
LOG: Appbase = C:\Program Files\Microsoft.NET\FrameworkSDK\Samples\Tutorials\resourcesandlocalization\graphic\cs\
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = NULL
Calling assembly : graphicfailtest, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
===
LOG: Processing DEVPATH.
LOG: DEVPATH is not set. Falling through to regular bind.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Post-policy reference: graphicfailtest.resources, Version=0.0.0.0, Culture=en-US, PublicKeyToken=null
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft.NET/FrameworkSDK/Samples/Tutorials/resourcesandlocalization/graphic/cs/graphicfailtest.resources.DLL.
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft.NET/FrameworkSDK/Samples/Tutorials/resourcesandlocalization/graphic/cs/graphicfailtest.resources/graphicfailtest.resources.DLL.
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft.NET/FrameworkSDK/Samples/Tutorials/resourcesandlocalization/graphic/cs/graphicfailtest.resources.EXE.
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft.NET/FrameworkSDK/Samples/Tutorials/resourcesandlocalization/graphic/cs/graphicfailtest.resources/graphicfailtest.resources.EXE.
LOG: All probing URLs attempted and failed.
항목 삭제
로그에서 단일 항목을 삭제하려면 다음을 수행합니다.
뷰어에서 항목을 선택합니다.
항목 삭제 단추를 클릭합니다.
로그에서 모든 항목을 삭제하려면 다음을 수행합니다.
- 모두 삭제 단추를 클릭합니다.
사용자 인터페이스 새로 고침
- 새로 고침 단추를 클릭합니다. 뷰어는 실행되는 동안 새 로그 항목을 자동으로 검색하지 않습니다. 새로 고침 단추를 사용하여 표시해야 합니다.
로그 설정 변경
설정 단추를 클릭하여 로그 설정 대화 상자를 엽니다.
정보 대화 상자 보기
정보 단추를 클릭합니다.
네이티브 이미지에 대한 바인딩 로그
기본적으로 Fuslogvw.exe 일반 어셈블리 바인딩 요청을 기록합니다. 또는Ngen.exe(네이티브 이미지 생성기)를 사용하여 만든 네이티브 이미지에 대한 어셈블리 바인딩을 기록할 수 있습니다.
네이티브 이미지에 대한 로그 어셈블리 바인딩
- 로그 범주 그룹에서 네이티브 이미지 옵션 단추를 선택합니다.
다음 로그는 애플리케이션에 대한 네이티브 이미지를 만들 때 존재하지 않는 종속성으로 인한 오류를 보여 드립니다. 런타임 시 종속성이 Ngen.exe 실행될 때 종속성과 다른 경우 네이티브 이미지에 바인딩할 수 없습니다.
*** Assembly Binder Log Entry (12/8/2006 @ 5:22:07 PM) ***
The operation failed.
Bind result: hr = 0x80070002. The system cannot find the file specified.
Assembly manager loaded from: E:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorwks.dll
Running under executable E:\test\App.exe
--- A detailed error log follows.
LOG: Start binding of native image App, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
LOG: IL assembly loaded from E:\test\App.exe.
LOG: Start validating native image App, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
LOG: Start validating all the dependencies.
LOG: [Level 1]Start validating native image dependency mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.
LOG: Dependency evaluation succeeded.
LOG: [Level 1]Start validating IL dependency b, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
WRN: Dependency assembly was not found at ngen time, but is found at binding time. Disallow using this native image.
WRN: No matching native image found.
LOG: Bind to native image assembly did not succeed. Use IL image.
다음 로그는 애플리케이션이 실행될 때 컴퓨터의 보안 설정이 네이티브 이미지를 만들 때의 보안 설정과 다르기 때문에 발생한 네이티브 이미지 바인딩 실패를 보여줍니다.
*** Assembly Binder Log Entry (12/8/2006 @ 5:29:09 PM) ***
The operation failed.
Bind result: hr = 0x80004005. Unspecified error
Assembly manager loaded from: E:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorwks.dll
Running under executable E:\test\Application101622.exe
--- A detailed error log follows.
LOG: Start binding of native image Application101622, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
LOG: IL assembly loaded from E:\test\Application101622.exe.
LOG: Start validating native image Application101622, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
LOG: Start validating all the dependencies.
LOG: [Level 1]Start validating native image dependency mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.
LOG: Dependency evaluation succeeded.
LOG: [Level 1]Start validating IL dependency Dependency101622, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
LOG: Dependency evaluation succeeded.
LOG: Validation of dependencies succeeded.
LOG: Start loading all the dependencies into load context.
LOG: Loading of dependencies succeeded.
LOG: Bind to native image succeeded.
Native image has correct version information.
Attempting to use native image E:\Windows\assembly\NativeImages_v2.0.50727_64\Application101622\1ac7fadabec4f72575d807501e9fdc72\Application101622.ni.exe.
Rejecting native image because it failed the security check. The assembly's permissions must have changed since the time it was ngenned, or it is running with a different security context.
Discarding native image.
로그 설정 대화 상자
로그 설정 대화 상자를 사용하여 다음 작업을 수행할 수 있습니다.
로깅을 사용하지 않도록 설정하려면
- 로그 사용 안 함 옵션 단추를 선택합니다. 이 옵션은 기본적으로 선택되어 있습니다.
예외에서 어셈블리 바인딩을 기록하려면
로그 인 예외 텍스트 옵션 단추를 선택합니다. 가장 자세한 Fusion 로그 정보만 예외 텍스트에 기록됩니다. 전체 정보를 보려면 다른 설정 중 하나를 사용합니다.
도메인 중립으로 로드되는 어셈블리에 대한 중요 참고 사항을 참조하세요.
어셈블리 바인딩 실패를 기록하려면
디스크에 대한 로그 바인딩 실패 옵션 단추를 선택합니다.
도메인 중립으로 로드되는 어셈블리에 대한 중요 참고 사항을 참조하세요.
모든 어셈블리 바인딩을 기록하려면
디스크에 대한 모든 바인딩 로그 옵션 단추를 선택합니다.
도메인 중립으로 로드되는 어셈블리에 대한 중요 참고 사항을 참조하세요.
중요합니다
예를 들어 속성을 설정하거나 LoaderOptimization.MultiDomainHost로깅을 설정하여 LoaderOptimizationLoaderOptimization.MultiDomain 어셈블리가 도메인 중립으로 로드되는 경우 경우에 따라 메모리가 누수될 수 있습니다. 이는 도메인 중립 모듈이 애플리케이션 도메인에 로드되고 나중에 애플리케이션 도메인이 언로드될 때 로그 항목이 만들어지는 경우에 발생할 수 있습니다. 프로세스가 끝날 때까지 로그 항목이 해제되지 않을 수 있습니다. 일부 디버거는 자동으로 로깅을 켭니다.
사용자 지정 로그 경로를 사용하도록 설정하려면
사용자 지정 로그 경로 사용 옵션 단추를 선택합니다.
사용자 지정 로그 경로 텍스트 상자에 경로를 입력합니다.
비고
어셈블리 바인딩 로그 뷰어(Fuslogvw.exe)는 인터넷 파일 캐시를 사용하여 바인딩 로그를 저장합니다. 캐시가 가끔 손상되어 어셈블리 바인딩 로그 뷰어(Fuslogvw.exe) 가 보기 창에 새 바인딩 로그를 표시하지 않을 수 있습니다. 이러한 손상으로 인해 .NET 바인딩 인프라(fusion)는 바인딩 로그에 쓰거나 읽을 수 없습니다. (사용자 지정 로그 경로를 사용하는 경우 이 문제가 발생하지 않습니다.) 손상을 해결하고 Fusion이 바인딩 로그를 다시 표시하도록 허용하려면 인터넷 속성 아래의 검색 기록 섹션에서 임시 인터넷 파일을 삭제하여 인터넷 파일 캐시를 지웁니다.
관리되지 않는 애플리케이션이 및 인터페이스를 구현하여 공용 언어 런타임을 호스트하는 IHostAssemblyManagerIHostAssemblyStore 경우 로그 항목을 wininet 캐시에 저장할 수 없습니다. 이러한 인터페이스를 구현하는 사용자 지정 호스트에 대한 로그 항목을 보려면 대체 로그 경로를 지정해야 합니다.
Windows 앱 컨테이너에서 실행되는 앱에 대한 로깅을 사용하도록 설정하려면
이전 절차에서 설명한 대로 사용자 지정 로그 경로를 사용하도록 설정합니다. 기본적으로 Windows 앱 컨테이너에서 실행되는 앱은 하드 디스크에 대한 액세스가 제한됩니다. 지정한 디렉터리에는 앱 컨테이너의 모든 앱에 대한 읽기/쓰기 권한이 있습니다.
몰입형 로깅 사용 확인란을 선택합니다.
비고
이 상자는 Windows 8 이상에서만 사용할 수 있습니다.
참고하십시오
- TypeLoadException
- Tools
- 전역 어셈블리 캐시
- 런타임에서 어셈블리를 찾는 방법
- 개발자 명령줄 셸
.NET