c# - net - probing privatepath




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

Вместо использования уродливого файла журнала вы также можете активировать журнал 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:

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


Вы можете запустить этот сценарий 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

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

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

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

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

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


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

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


На всякий случай вам интересно узнать местоположение FusionLog.exe. Вы знаете, что у вас есть это, но вы не можете его найти? Я искал FUSLOVW за последние несколько лет снова и снова. После перехода на .NET 4.5 взорвался номер версии FUSION LOG. Это места, где их можно найти на вашем диске, в зависимости от программного обеспечения, которое вы установили:

C: \ Program Files (x86) \ Microsoft SDK \ Windows \ v8.0A \ bin \ NETFX 4.0 Инструменты \ x64

C: \ Program Files (x86) \ Microsoft SDK \ Windows \ v7.0A \ Bin \ x64

C: \ Program Files (x86) \ Microsoft SDK \ Windows \ v8.1A \ bin \ NETFX 4.5.1 Инструменты \ x64

C: \ Program Files (x86) \ Microsoft SDK \ Windows \ v8.0A \ bin \ NETFX 4.0 Инструменты

C: \ Program Files (x86) \ Microsoft SDK \ Windows \ v8.1A \ bin \ NETFX 4.5.1 Инструменты

C: \ Program Files (x86) \ Microsoft SDK \ Windows \ v7.0A \ Bin


Обычно я использую Fusion Log Viewer ( Fuslogvw.exe из командной строки Visual Studio или Fusion Log Viewer из меню «Пуск»). Моя стандартная настройка:

  • Открыть Fusion Log Viewer как администратор
  • Настройки кликов
  • Установите флажок Включить настраиваемый путь к журналу
  • Введите местоположение, в которое вы хотите записать журналы, например c:\FusionLogs ( важно: убедитесь, что вы действительно создали эту папку в файловой системе.)
  • Убедитесь, что включен правильный уровень ведения журнала (иногда я просто выбираю Log all binds to disk, чтобы убедиться, что все работает правильно)
  • Нажмите ОК.
  • Установите для параметра «Локальное местоположение» значение « Пользовательский»

Не забудьте выключить отключение, как только вы закончите!

(Я просто разместил это по аналогичному вопросу - я думаю, что это тоже актуально).


Скрипт смены сценариев Fusion Log Viewer не является лучшим способом для этого.

В ASP.NET иногда было сложно, чтобы это работало правильно. Этот скрипт отлично работает и был включен в список Power Tool Скотта Хансельмана . Я лично использовал его в течение многих лет, и это никогда не подводило меня.





assemblies