Como activar o registo de falhas de ligação do conjunto (fusão) in.NET

Como é que activo o registo de falhas da ligação de montagem (fusão) no. NET?

Author: Peter Mortensen, 2008-11-01

9 answers

Adicione os seguintes valores a

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\)

Certifique-se que inclui a barra invertida a seguir ao nome da pasta e que a pasta existe.

Tem de reiniciar o programa que está a correr para o Forçar a ler as configurações do registo.

BTW, não se esqueça de desligar o corte de fusão quando não for necessário.
 761
Author: Gary Kindel, 2016-09-15 14:00:13

Normalmente uso o Visualizador de Log de fusão (Fuslogvw.exe a partir de um visualizador de linha de comandos Visual Studio ou de Registo de fusão do menu inicial) - a minha configuração padrão é:

  • Visualizador de Log de fusão aberta como administrador
  • Carregue em configuração
  • assinale a opção activar a localização de Registo personalizada
  • indique a localização onde deseja que os registos sejam escritos, por exemplo, c:\FusionLogs (importante: certifique-se de que criou esta pasta na sistema.)
  • Certifique-se que o nível certo de Registo Está ligado (por vezes, basta seleccionar o registo liga-se ao disco só para ter a certeza que as coisas estão a funcionar correctamente)
  • Clique em OK
  • defina a opção de localização do registo como Personalizado
Lembra-te de desligar o madeireiro quando acabares! [[[2]}(eu acabei de postar isso em uma pergunta semelhante-eu acho que é relevante aqui também.)
 221
Author: Mike Goatly, 2018-07-02 21:04:09

Se tiver o Windows SDK instalado na sua máquina, irá encontrar o" Visualizador de Log de fusão "no Microsoft SDK\Tools (basta escrever" Fusion " no menu Iniciar no Vista ou no Windows 7/8). Inicie-o, clique no botão de configuração, e selecione "Log bind failure" ou "Log all binds".

Se estes botões estiverem desactivados, volte ao menu Iniciar, carregue com o botão direito no Visualizador de Registos e seleccione "Executar como administrador".

 182
Author: Samuel Jack, 2013-05-02 09:41:54

Defina o seguinte valor de Registo:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft \ Fusion!EnableLog] (DWORD) to 1

Para desactivar, definir para 0 ou apagar o valor.

[editar]: grave o seguinte texto num ficheiro, P.ex. FusionEnableLog.reg, em Formato Do Editor Do Registo Do Windows:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion]
"EnableLog"=dword:00000001

Depois execute o ficheiro do windows explorer e ignore o Aviso sobre possíveis danos.

 82
Author: user32736, 2013-05-20 21:43:47

Pode executar este programa Powershell como administrador para activar o 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

Nota: Certifique-se de que o diretório fornecido para o item LogPath existe. Se o diretório não existir, então seus registros não serão recuperáveis.

E este para desactivar:

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
 57
Author: Tereza Tomcova, 2018-01-22 20:54:22

Em vez de usar um ficheiro de Registo feio, Poderá também activar o registo de fusão via ETW/xperf ligando o fornecedor privado DotnetRuntime (Microsoft-Windows-DotNETRuntimePrivate) com o GUID 763FD754-7086-4DFE-95EB-C01A46FAF4CA e a palavra-chave FusionKeyword (0x4) ligada.

@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

Quando abrir agora o ficheiro ETL em PerfView e procurar Debaixo da tabela de Eventos, poderá encontrar os dados de fusão:

Fusion events in PerfView

 9
Author: magicandre1981, 2015-03-31 17:22:02

Apenas um pequeno pedaço de informação que poderá ajudar os outros; se você fizer alguma coisa ao longo das linhas de pesquisa de todas as montagens em algum diretório para classes que herdam/implementam classes/interfaces, então certifique-se de limpar as montagens obsoletas se você obter este erro pertencente a uma de suas próprias montagens.

O cenário seria algo como:

  1. O conjunto a carrega todos os conjuntos numa pasta
  2. O conjunto B nesta pasta está obsoleto, mas o conjunto de referências C
  3. a montagem C existe, mas os espaços de nomes, nomes de classes ou algum outro detalhe podem ter mudado no tempo que passou desde que a montagem B se tornou obsoleta (no meu caso, um espaço de nomes foi alterado através de um processo de refactoração)

Em resumo: a - - - cargas-- > B (obsoletas) ---referências - - - > c

Se isto acontecer, o único sinal telltale é o espaço de nomes e o nome da classe na mensagem de erro. Examine-o de perto. Se você não pode encontrá-lo em qualquer lugar em sua solução, você provavelmente está tentando carregar um montagem obsoleta.

 3
Author: andrerav, 2013-07-18 15:03:37

Se já tiver o registo activo e ainda tiver este erro no Windows 7 64 bit, tente isto no IIS 7. 5:

  1. Criar um novo conjunto de aplicações

  2. Ir para as configurações avançadas deste conjunto de aplicações

  3. Definir o activar a aplicação de 32 bits para verdadeiro

  4. Aponte a sua aplicação web para usar esta nova piscina

 2
Author: Adam Mendoza, 2012-05-13 18:01:04