Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Средство просмотра журналов привязки сборок отображает сведения о привязках сборок. Эти сведения помогают диагностировать, почему платформа .NET Framework не может находить сборку во время выполнения. Эти сбои обычно являются результатом сборки, развернутой в неправильном расположении, собственном образе, который больше не действителен, или несоответствие номеров версий или региональных параметров. Ошибка среды cl language runtime для поиска сборки обычно отображается как в TypeLoadException приложении.
Это важно
Необходимо запустить fuslogvw.exe с правами администратора.
Эта программа автоматически устанавливается вместе с Visual Studio. Чтобы запустить средство, используйте командную строку разработчика Visual Studio или PowerShell разработчика Visual Studio с учетными данными администратора.
В командной строке введите следующую команду:
fuslogvw
Средство просмотра отображает запись для каждой неудачной привязки сборки. Для каждого сбоя средство просмотра описывает:
- приложение, инициирующее привязку
- сборка, для которых выполняется привязка, включая имя, версию, язык и региональные параметры и открытый ключ.
- дата и время сбоя
Инструкции...
- Изменение представления расположения журнала
- Просмотр сведений о конкретном сбое
- Удаление записей
- Обновление пользовательского интерфейса
- Изменение параметров журнала
- Просмотр диалогового окна "Сведения"
Изменение представления расположения журнала
Нажмите кнопку "По умолчанию", чтобы просмотреть сбои привязки для всех типов приложений. По умолчанию записи журнала хранятся в каталогах для каждого пользователя на диске в кэше 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/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 свойства LoaderOptimization.MultiDomain или LoaderOptimization.MultiDomainHostвключения ведения журнала может утечка памяти в некоторых случаях. Это может произойти, если запись журнала выполняется при загрузке нейтрального домена в домен приложения, а затем выгрузится домен приложения. Запись журнала может не быть выпущена до завершения процесса. Некоторые отладчики автоматически включите ведение журнала.
Включение пользовательского пути к журналу
Нажмите кнопку "Включить путь к пользовательскому журналу ".
Введите путь в текстовое поле "Пользовательский путь к журналу ".
Замечание
Средство просмотра журналов привязки сборок (Fuslogvw.exe) использует кэш файлов Интернета для хранения журнала привязки. Из-за случайного повреждения кэша средство просмотра журналов привязки сборок (Fuslogvw.exe) иногда может перестать отображать новые журналы привязки в окне просмотра. В результате этого повреждения инфраструктура привязки .NET (fusion) не может записывать в журнал привязки или читать их из журнала привязки. (Эта проблема не возникает, если вы используете пользовательский путь к журналу.) Чтобы исправить повреждение и разрешить слияние снова отображать журналы привязки, очистите кэш файлов Интернета, удалив временные файлы Интернета из раздела журнала просмотра в свойствах Интернета.
Если неуправляемое приложение размещает среду CLR путем реализации IHostAssemblyManager и IHostAssemblyStore интерфейсов, записи журнала не могут храниться в кэше wininet. Чтобы просмотреть записи журнала для пользовательских узлов, реализующих эти интерфейсы, необходимо указать альтернативный путь к журналу.
Включение ведения журнала для приложений, работающих в контейнере приложений Windows
Включите пользовательский путь к журналу, как описано в предыдущей процедуре. По умолчанию приложения, работающие в контейнере приложений Windows, имеют ограниченный доступ к жесткому диску. Указанный каталог будет иметь доступ на чтение и запись для всех приложений в контейнере приложений.
Установите флажок "Включить иммерсивное ведение журнала ".
Замечание
Это поле включено только в Windows 8 или более поздней версии.