Средство просмотра журнала привязки сборок (Fuslogvw.exe)
Обновлен: Ноябрь 2007
Средство просмотра журнала привязки сборок выводит подробные сведения об ошибочных привязках сборки. Эти сведения помогут провести диагностику в том случае, если .NET Framework не найдет сборку во время выполнения. Эти ошибки обычно вызваны развертыванием сборки в неверном расположении, использованием образа в машинном коде, который более не является допустимым, а также несовпадением версий или языков и региональных параметров. В приложениях невозможность найти сборку в общеязыковой среде выполнения обычно приводит к возникновению исключения TypeLoadException.
Чтобы просмотреть содержимое журнала привязки сборок
- Запустите средство Fuslogvw.exe из Командная строка пакета SDK.
В средстве просмотра отображаются записи для всех неудачных попыток привязки сборок. Для каждой ошибки указывается: приложение, выполнявшее привязку; сборка, для которой выполнялась привязка, включая имя, версию, культуру и открытый ключ; дата и время ошибки.
Чтобы изменить представление местоположения журнала
Чтобы просмотреть сбои привязки для всех типов приложений, выберите параметр По умолчанию. Записи журнала по умолчанию хранятся в каталогах для отдельных пользователей на жестком диске в кэше Wininet.
Чтобы просмотреть ошибки привязки в пользовательском каталоге, выберите параметр Настраиваемый. Необходимо указать пользовательское местоположение, где среда выполнения должна хранить журналы, задав для пользовательского расположения журнала в диалоговом окне Параметры журнала имя допустимого каталога. Этот каталог должен быть чист и должен содержать только файлы, создаваемые средой выполнения. Если в этом каталоге находится исполняемый файл, создающий ошибку, которую требуется занести в журнал, ошибка не будет зарегистрирована в журнале, так как инструмент просмотра попытается создать каталог с именем исполняемого файла. Кроме того, попытка запустить исполняемый файл из местоположения журнала завершится сбоем.
Примечание. Установленное по умолчанию местоположение привязки предпочтительнее пользовательского местоположения привязки. Среда выполнения хранит местоположение привязки, используемое по умолчанию, в кэше Wininet и потому автоматически очищает его. Пользовательское местоположение привязки необходимо очищать вручную.
Чтобы просмотреть подробный отчет о конкретной ошибке
Выберите имя приложения нужной записи в средстве просмотра.
Нажмите кнопку Просмотреть журнал. Также можно дважды щелкнуть выбранную запись.
Будут отображены следующие сведения о выбранной ошибке привязки:
Причина возникновения ошибки, например "файл не найден" или "несоответствие версий".
Сведения о приложении, выполнявшем привязку, в том числе имя, корневой каталог приложения (AppBase) и описание частного пути поиска, если он существует.
Идентификация сборки, которую ищет средство.
Описание любых примененных политик версий приложения, издателя и администратора.
Сведения о том, была ли обнаружена сборка в глобальном кэше сборок.
Список всех проверенных 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/en-US/graphicfailtest.resources.DLL.
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft.NET/FrameworkSDK/Samples/Tutorials/resourcesandlocalization/graphic/cs/en-US/graphicfailtest.resources/graphicfailtest.resources.DLL.
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft.NET/FrameworkSDK/Samples/Tutorials/resourcesandlocalization/graphic/cs/en-US/graphicfailtest.resources.EXE.
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft.NET/FrameworkSDK/Samples/Tutorials/resourcesandlocalization/graphic/cs/en-US/graphicfailtest.resources/graphicfailtest.resources.EXE.
LOG: All probing URLs attempted and failed.
Чтобы удалить запись из журнала
Выберите запись в средстве просмотра.
Нажмите кнопку Удалить запись.
Чтобы удалить все записи из журнала
- Нажмите кнопку Удалить все.
Чтобы обновить интерфейс пользователя
- Нажмите кнопку Обновить. Во время работы программы новые записи не выявляются автоматически. Чтобы отобразить их, необходимо нажать кнопку Refresh .
Чтобы изменить параметры журнала
- Нажмите кнопку Параметры, чтобы открыть диалоговое окно Параметры журнала.
Чтобы просмотреть диалоговое окно "О"
- Нажмите кнопку О.
Привязка журналов для образов в машинном коде
По умолчанию 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.
Диалоговое окно "Параметры журнала"
Диалоговое окно Параметры журнала используется для выполнения перечисленных ниже действий.
Чтобы отключить ведение журнала
- Выберите параметр Журнал отключен. Обратите внимание, что этот параметр выбран по умолчанию.
Чтобы включать в журнал привязки сборок в исключениях
Выберите параметр Запись в текст исключения.
См. важное примечание, посвященном сборкам, которые загружаются как нейтральные к домену.
Чтобы включать в журнал сбои привязки сборок
Выберите параметр Запись ошибок привязки на диск.
См. важное примечание, посвященном сборкам, которые загружаются как нейтральные к домену.
Чтобы включать в журнал все привязки сборок
Выберите параметр Запись всех привязок на диск.
См. важное примечание, посвященном сборкам, которые загружаются как нейтральные к домену.
Важное примечание. |
---|
Если сборка загружается как нейтральная к домену, например при установке для свойства LoaderOptimization значения LoaderOptimization.MultiDomain или LoaderOptimization.MultiDomainHost, включение ведения журнала в некоторых случаях может привести к утечкам памяти. Это может произойти в том случае, если запись вносится в журнал при загрузке нейтрального к домену модуля в домен приложения с последующей выгрузкой домена приложения. Запись в журнале не может быть освобождена до завершения данного процесса. Некоторые отладчики включают привязку автоматически. |
Чтобы разрешить пользовательский путь к журналу
Выберите параметр Разрешить пользовательский путь к журналу.
Введите путь в текстовом поле Пользовательский путь к журналу.
Примечание. |
---|
Средство просмотра журнала привязки сборок (Fuslogvw.exe) использует для хранения своего журнала привязок кэш обозревателя Internet Explorer (IE). В связи с тем, что время от времени происходит повреждение кэша обозревателя Internet Explorer, Средство просмотра журнала привязки сборок (Fuslogvw.exe) иногда прекращает отображение новых журналов привязки в окне просмотра. В результате таких сбоев инфраструктура привязки в платформе .NET (fusion) не может выполнять запись в журнал привязок или считывание из него. (Эта проблема не возникает при выборе пользовательского пути к журналу). Чтобы устранить эту неполадку и позволить объекту fusion снова отображать привязки, следует очистить кэш IE посредством удаления временных файлов Интернета в диалоговом окне "Свойства обозревателя". Если неуправляемое приложение размещает общеязыковую среду выполнения посредством реализации интерфейсов IHostAssemblyManager и IHostAssemblyStore, хранение записей журнала в кэше Wininet невозможно. Чтобы просмотреть записи журнала для пользовательских размещающих объектов, которые реализуют эти интерфейсы, необходимо задать альтернативный путь к журналу. |
См. также
Основные понятия
Обнаружение сборок в среде выполнения