Fuslogvw.exe(어셈블리 바인딩 로그 뷰어)Fuslogvw.exe (Assembly Binding Log Viewer)

어셈블리 바인딩 로그 뷰어는 어셈블리 바인딩에 대한 자세한 내용을 표시합니다.The Assembly Binding Log Viewer displays details for assembly binds. 이 정보를 검토하면 .NET Framework에서 런타임에 어셈블리를 찾지 못하는 이유를 진단할 수 있습니다.This information helps you diagnose why the .NET Framework cannot locate an assembly at run time. 이러한 오류는 일반적으로 어셈블리가 잘못된 위치에 배포되었거나 네이티브 이미지가 더 이상 유효하지 않거나 버전 번호 또는 문화권이 일치하지 않기 때문에 일어납니다.These failures are usually the result of an assembly deployed to the wrong location, a native image that is no longer valid, or a mismatch in version numbers or cultures. 공용 언어 런타임의 어셈블리 찾기 오류는 일반적으로 애플리케이션에서 TypeLoadException으로 나타납니다.The common language runtime's failure to locate an assembly typically shows up as a TypeLoadException in your application.

중요

Fuslogvw.exe는 관리자 권한으로 실행해야 합니다.You must run fuslogvw.exe with administrator privileges.

이 도구는 자동으로 Visual Studio와 함께 설치됩니다.This tool is automatically installed with Visual Studio. 이 도구를 실행하려면 Visual Studio용 개발자 명령 프롬프트(또는 Windows 7의 Visual Studio 명령 프롬프트)를 관리자 자격 증명과 함께 사용합니다.To run the tool, use the Developer Command Prompt for Visual Studio (or the Visual Studio Command Prompt in Windows 7) with administrator credentials. 자세한 내용은 명령 프롬프트를 참조하세요.For more information, see Command Prompts.

명령 프롬프트에 다음을 입력합니다.At the command prompt, type the following:

fuslogvw

뷰어에서는 실패한 각 어셈블리 바인딩의 엔트리를 표시하고The viewer displays an entry for each failed assembly bind. 실패한 각각의 경우에 대해 바인딩을 시작한 애플리케이션, 바인딩 대상 어셈블리(이름, 버전, 문화권, 공개 키 포함) 및 오류가 발생한 날짜와 시간 등에 대해 설명합니다.For each failure, the viewer describes the application that initiated the bind; the assembly the bind is for, including name, version, culture and public key; and the date and time of the failure.

로그 위치 보기를 변경하려면To change the log location view

  1. 기본값 옵션 단추를 선택하여 모든 애플리케이션 종류에 대한 바인딩 실패를 봅니다.Select the Default option button to view bind failures for all application types. 기본적으로 로그 항목은 디스크의 사용자별 디렉터리에서 wininet 캐시에 저장됩니다.By default, log entries are stored in per-user directories on disk in the wininet cache.

  2. 사용자 지정 옵션 단추를 선택하여 사용자 지정 디렉터리의 바인딩 오류를 봅니다.Select the Custom option button to view bind failures in a custom directory that you specify. 유효한 디렉터리 이름을 위해 로그 설정 대화 상자에서 사용자 지정 로그 위치를 설정하여 런타임에 로그를 저장할 사용자 지정 위치를 지정해야 합니다.You must specify the custom location where you want the runtime to store the logs by setting the custom log location in the Log Settings dialog to a valid directory name. 이 디렉터리는 런타임에 생성되는 파일만 포함해야 합니다.This directory should be clean, and only contain files that the runtime generates. 실패하여 로그를 남길 수 있는 실행 파일이 들어 있으면 도구에서 실행 파일과 같은 이름으로 디렉터리를 만들려고 시도하므로 실패한 경우 로그를 남길 수 없습니다.If it contains an executable that generates a failure to be logged, the failure will not be logged because the tool tries to create a directory with the same name as the executable. 또한 로그 위치에서 실행 파일을 실행할 수 없습니다.In addition, an attempt to run an executable from the log location will fail.

    참고

    사용자 지정 바인딩 위치보다 기본 바인딩 위치를 사용하는 것이 좋습니다.The default bind location is preferable to the custom bind location. 런타임은 기본 바인딩 위치를 wininet 캐시에 저장하기 때문에 자동으로 이 위치를 비웁니다. 그러나 사용자 지정 바인딩 위치를 지정하는 경우에는 사용자가 직접 비워야 합니다.The runtime stores the default bind location in the wininet cache, and therefore automatically cleans it out. If you specify a custom bind location, you are responsible for cleaning it out.

특정 오류에 대한 자세한 내용을 보려면To view details about a specific failure

  1. 뷰어에서 원하는 엔트리의 애플리케이션 이름을 선택합니다.Select the application name of the desired entry in the viewer.

  2. 로그 보기 단추를 클릭합니다.Click the View Log button. 또는 선택한 엔트리를 두 번 클릭할 수도 있습니다.Alternately, you can double-click the selected entry.

    다음과 같이 선택한 바인딩 오류에 대한 자세한 내용이 표시됩니다.The tool displays the following details about the selected bind failure:

    • "파일을 찾을 수 없습니다." 또는 "버전이 일치하지 않습니다." 등 바인딩이 실패한 특정 원인The specific reason the bind failed, such as "file not found" or "version mismatch".

    • 이름, 애플리케이션의 루트 디렉터리(AppBase) 및 개인 검색 경로(있는 경우)의 설명 등을 포함하여 바인딩을 시작한 애플리케이션에 대한 정보Information about the application that initiated the bind, including its name, the application's root directory (AppBase), and a description of the private search path, if there is one.

    • 도구에서 찾고 있는 어셈블리의 IDThe identity of the assembly the tool is looking for.

    • 적용된 애플리케이션, 게시자 또는 관리자 버전 정책 설명A description of any Application, Publisher, or Administrator version policies that have been applied.

    • 전역 어셈블리 캐시에 어셈블리가 있는지 여부Whether the assembly was found in the global assembly cache.

    • 검색하는 모든 URL 목록A list of all probing URLs.

다음 샘플 로그 엔트리는 실패한 어셈블리 바인딩에 대한 자세한 정보를 보여 줍니다.The following sample log entry shows detailed information about a failed assembly bind.

*** 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.

로그에서 단일 엔트리를 삭제하려면To delete a single entry from the log

  1. 뷰어에서 엔트리를 선택합니다.Select an entry in the viewer.

  2. 항목 삭제 단추를 클릭합니다.Click the Delete Entry button.

로그에서 모든 엔트리를 삭제하려면To delete all entries from the log

  • 모두 삭제 단추를 클릭합니다.Click the Delete All button.

사용자 인터페이스를 새로 고치려면To refresh the user interface

  • 새로 고침 단추를 클릭합니다.Click the Refresh button. 뷰어는 실행 중인 동안에는 새 로그 엔트리를 자동으로 검색하지 않습니다.The viewer does not automatically detect new log entries while it is running. 새 항목을 표시하려면 새로 고침 단추를 사용해야 합니다.You must use the Refresh button to display them.

로그 설정을 변경하려면To change the log settings

  • 설정 단추를 클릭하여 로그 설정 대화 상자를 엽니다.Click the Settings button to open the Log Settings dialog.

정보 상자를 보려면To view the About dialog

  • 정보 단추를 클릭합니다.Click the About button.

네이티브 이미지에 대한 바인딩 로그Binding Logs for Native Images

기본적으로 Fuslogvw.exe는 일반 어셈블리 바인딩 요청을 기록합니다.By default, Fuslogvw.exe logs normal assembly bind requests. 또는 Ngen.exe(네이티브 이미지 생성기)를 사용하여 생성된 네이티브 이미지에 대한 어셈블리 바인딩을 기록할 수 있습니다.Alternatively, you can log assembly binds for native images that were created using the Ngen.exe (Native Image Generator).

네이티브 이미지에 대한 어셈블리 바인딩을 기록하려면To log assembly binds for native images

  • 로그 범주 그룹에서 네이티브 이미지 옵션 단추를 선택합니다.In the Log Categories group, select the Native Images option button.

다음 로그에서는 애플리케이션에 대한 네이티브 이미지가 생성되었을 때 종속성이 존재하지 않아 발생한 실패를 보여 줍니다.The following log shows a failure caused by a dependency that did not exist when the native image was created for the application. 런타임에서의 종속성과 Ngen.exe가 실행될 때의 종속성이 다른 경우 네이티브 이미지에 대한 바인딩을 사용할 수 없습니다.If the dependencies at run time differ from the dependencies when Ngen.exe is run, binding to a native image is not allowed.

*** 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.

다음 로그에서는 애플리케이션이 실행되었을 때의 컴퓨터 보안 설정이 네이티브 이미지가 생성되었을 때의 보안 설정과 달라 발생하는 네이티브 이미지 바인딩 실패를 보여 줍니다.The following log shows a native image binding failure that occurred because the security settings on the computer when the application was run were different from the security settings at the time the native image was created.

*** 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.

로그 설정 대화 상자The Log Settings Dialog

로그 설정 대화 상자를 사용하여 다음 작업을 수행할 수 있습니다.You can use the Log Settings dialog to perform the following actions.

로깅을 사용하지 않으려면To disable logging

  • 로그 사용 안 함 옵션 단추를 선택합니다.Select the Log disabled option button. 이 옵션은 기본적으로 선택되어 있습니다.Note that this option is selected by default.

예외에 어셈블리 바인딩을 기록하려면To log assembly binds in exceptions

  • 예외 텍스트로 기록 옵션 단추를 선택합니다.Select the Log in exception text option button. 덜 자세한 fusion 로그 정보만 예외 텍스트로 기록됩니다.Only the least detailed fusion log information is logged in exception text. 전체 정보를 보려면 다른 설정 중 하나를 사용합니다.To view full information, use one of the other settings.

    도메인 중립적으로 로드되는 어셈블리에 대한 중요 사항을 참조하세요.See the Important note regarding assemblies that are loaded as domain neutral.

어셈블리 바인딩 실패를 기록하려면To log assembly bind failures

  • 디스크에 바인드 실패 기록 옵션 단추를 선택합니다.Select the Log bind failures to disk option button.

    도메인 중립적으로 로드되는 어셈블리에 대한 중요 사항을 참조하세요.See the Important note regarding assemblies that are loaded as domain neutral.

모든 어셈블리 바인딩을 기록하려면To log all assembly binds

  • 디스크에 모든 바인드 기록 옵션 단추를 선택합니다.Select the Log all binds to disk option button.

    도메인 중립적으로 로드되는 어셈블리에 대한 중요 사항을 참조하세요.See the Important note regarding assemblies that are loaded as domain neutral.

중요

예를 들어 LoaderOptimization 속성을 LoaderOptimization.MultiDomain 또는 LoaderOptimization.MultiDomainHost로 설정하여 어셈블리가 도메인 중립적으로 로드되는 경우 로깅을 설정하면 경우에 따라 메모리가 누수될 수 있습니다.When an assembly is loaded as domain neutral, for example by setting the LoaderOptimization property to LoaderOptimization.MultiDomain or LoaderOptimization.MultiDomainHost, turning on logging might leak memory in some cases. 도메인 중립 모듈이 애플리케이션 도메인에 로드되었을 때 로그 엔트리가 만들어지고 나중에 애플리케이션 도메인이 언로드되면 이러한 누수가 발생할 수 있습니다.This can happen if a log entry is made when a domain-neutral module is loaded into an application domain, and later the application domain is unloaded. 프로세스가 끝날 때까지는 로그 엔트리가 해제되지 않을 수도 있습니다.The log entry might not be released until the process ends. 로깅이 자동으로 설정되는 디버거도 있습니다.Some debuggers automatically turn on logging.

사용자 지정 로그 경로를 사용하려면To enable a custom log path

  1. 사용자 지정 로그 경로 사용 옵션 단추를 선택합니다.Select the Enable custom log path option button.

  2. 사용자 지정 로그 경로 텍스트 상자에 경로를 입력합니다.Enter the path into the Custom log path text box.

참고

어셈블리 바인딩 로그 뷰어(Fuslogvw.exe)에서는 IE(Internet Explorer) 캐시를 사용하여 바인딩 로그를 저장합니다.The Assembly Binding Log Viewer (Fuslogvw.exe) uses the Internet Explorer (IE) cache to store its binding log. 가끔 나타나는 IE 캐시 손상으로 인해 어셈블리 바인딩 로그 뷰어(Fuslogvw.exe)에서는 보기 창에 새 바인딩 로그를 표시하지 않을 수도 있습니다.Due to occasional corruption in the IE cache, the Assembly Binding Log Viewer (Fuslogvw.exe) can sometimes stop showing new binding logs in the viewing window. 이 손상으로 인해 .NET 바인딩 인프라(fusion)는 바인딩 로그에 쓰거나 바인딩 로그에서 읽을 수 없습니다.As a result of this corruption, the .NET binding infrastructure (fusion) cannot write to or read from the binding log. 사용자 지정 로그 경로를 사용하는 경우에는 이 문제가 발생하지 않습니다. 손상을 해결하고 fusion이 바인딩 로그를 다시 표시하도록 하려면 IE 옵션 대화 상자 내에서 임시 인터넷 파일을 삭제하여 IE 캐시를 지웁니다.(This issue is not encountered if you use a custom log path.) To fix the corruption and allow fusion to show binding logs again, clear the IE cache by deleting temporary internet files from within the IE Internet Options dialog.

관리되지 않는 애플리케이션에서 IHostAssemblyManagerIHostAssemblyStore 인터페이스를 구현하여 공용 언어 런타임을 호스팅하는 경우 로그 엔트리를 wininet 캐시에 저장할 수 없습니다.If your unmanaged application hosts the common language runtime by implementing the IHostAssemblyManager and IHostAssemblyStore interfaces, log entries can't be stored in the wininet cache. 이러한 인터페이스를 구현하는 사용자 지정 호스트에 대한 로그 엔트리를 보려면 대체 로그 경로를 지정해야 합니다.To view log entries for custom hosts that implement these interfaces, you must specify an alternate log path.

Windows 앱 컨테이너에서 실행되는 앱에 대해 로깅을 사용하려면To enable logging for apps running in the Windows app container

  1. 이전 절차에서 설명한 대로, 사용자 지정 로그 경로를 활성화시킵니다.Enable a custom log path, as described in the previous procedure. 기본적으로, Windows 앱 컨테이너에서 실행되는 응용 프로그램은 하드 디스크에 대한 액세스가 제한됩니다.By default, apps that are running in the Windows app container have limited access to the hard disk. 지정한 디렉터리는 응용 프로그램 컨테이너에 있는 모든 응용 프로그램에 대한 읽기/쓰기 권한을 갖습니다.The directory you specify will have read/write access for all apps in the app container.

  2. 로깅 몰입 활성화 확인란을 선택합니다.Select the Enable immersive logging check box.

    참고

    Windows 8 이상에서만 상자가 활성화됩니다.This box is enabled only on Windows 8 or later.

참고 항목See also