c# assembly - Как включить ведение журнала сбоев сборки (Fusion) в .NET.




5 Answers

Добавьте следующие значения в

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion
Add:
DWORD ForceLog set value to 1
DWORD LogFailures set value to 1
DWORD LogResourceBinds set value to 1
DWORD EnableLog set value to 1
String LogPath set value to folder for logs (e.g. C:\FusionLog\)

Убедитесь, что вы указали обратную косую черту после имени папки и что папка существует .

Вам нужно перезапустить программу, которую вы используете, чтобы заставить ее прочитать эти параметры реестра.

BTW, не забудьте выключить слияние, если не нужно.

binding redirect

Как включить ведение журнала сбоев сборки (Fusion) в .NET?




Если на вашем компьютере установлен SDK Windows, вы найдете «Средство просмотра журнала Fusion» в Microsoft SDK \ Tools (просто введите «Fusion» в меню «Пуск» в Vista или Windows 7/8). Запустите его, нажмите кнопку «Параметры» и выберите «Ошибка связывания журнала» или «Записать все привязки».

Если эти кнопки отключены, вернитесь в меню «Пуск», щелкните правой кнопкой мыши «Просмотр журнала» и выберите «Запуск от имени администратора».




Вы можете запустить этот сценарий Powershell как администратор, чтобы включить FL:

Set-ItemProperty -Path HKLM:\Software\Microsoft\Fusion -Name ForceLog         -Value 1               -Type DWord
Set-ItemProperty -Path HKLM:\Software\Microsoft\Fusion -Name LogFailures      -Value 1               -Type DWord
Set-ItemProperty -Path HKLM:\Software\Microsoft\Fusion -Name LogResourceBinds -Value 1               -Type DWord
Set-ItemProperty -Path HKLM:\Software\Microsoft\Fusion -Name LogPath          -Value 'C:\FusionLog\' -Type String

Примечание. Убедитесь, что каталог, указанный для записи LogPath, существует. Если каталог не существует, ваши журналы не будут восстановлены.

и этот отключить:

Remove-ItemProperty -Path HKLM:\Software\Microsoft\Fusion -Name ForceLog
Remove-ItemProperty -Path HKLM:\Software\Microsoft\Fusion -Name LogFailures
Remove-ItemProperty -Path HKLM:\Software\Microsoft\Fusion -Name LogResourceBinds
Remove-ItemProperty -Path HKLM:\Software\Microsoft\Fusion -Name LogPath



Вместо использования уродливого файла журнала вы также можете активировать журнал Fusion через ETW/xperf , включив частный провайдер DotnetRuntime ( Microsoft-Windows-DotNETRuntimePrivate ) с GUID 763FD754-7086-4DFE-95EB-C01A46FAF4CA и FusionKeyword словом FusionKeyword (0x4) на.

@echo off
echo Press a key when ready to start...
pause
echo .
echo ...Capturing...
echo .

"C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\xperf.exe" -on PROC_THREAD+LOADER+PROFILE -stackwalk Profile -buffersize 1024 -MaxFile 2048 -FileMode Circular -f Kernel.etl
"C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\xperf.exe" -start ClrSession -on Microsoft-Windows-DotNETRuntime:0x8118:0x5:'stack'+763FD754-7086-4DFE-95EB-C01A46FAF4CA:0x4:0x5 -f clr.etl -buffersize 1024

echo Press a key when you want to stop...
pause
pause
echo .
echo ...Stopping...
echo .

"C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\xperf.exe" -start ClrRundownSession -on Microsoft-Windows-DotNETRuntime:0x8118:0x5:'stack'+Microsoft-Windows-DotNETRuntimeRundown:0x118:0x5:'stack' -f clr_DCend.etl -buffersize 1024 

timeout /t 15

set XPERF_CreateNGenPdbs=1

"C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\xperf.exe" -stop ClrSession ClrRundownSession 
"C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\xperf.exe" -stop
"C:\Program Files (x86)\Windows Kits\8.1\Windows Performance Toolkit\xperf.exe" -merge kernel.etl clr.etl clr_DCend.etl Result.etl -compress
del kernel.etl
del clr.etl
del clr_DCend.etl

Когда вы теперь открываете файл ETL в PerfView и смотрите в таблице Events, вы можете найти данные Fusion:




Если вы уже включили ведение журнала и все еще получаете эту ошибку в 64-разрядной версии Windows 7, попробуйте это в IIS 7.5:

  1. Создайте новый пул приложений

  2. Перейдите в Дополнительные настройки этого пула приложений.

  3. Установите для параметра « Включить 32-разрядное приложение» значение « Истина»

  4. Направьте ваше веб-приложение на использование этого нового пула




Related