Fuslogvw.exe (Visualizzatore log associazioni assembly)Fuslogvw.exe (Assembly Binding Log Viewer)

Il Visualizzatore log associazione assembly consente di visualizzare i dettagli relativi alle associazioni di assembly.The Assembly Binding Log Viewer displays details for assembly binds. Queste informazioni facilitano la diagnosi delle cause dell'impossibilità di individuare un assembly in fase di esecuzione.This information helps you diagnose why the .NET Framework cannot locate an assembly at run time. Questi errori sono generalmente dovuti alla distribuzione di un assembly nel percorso errato, a un'immagine nativa che non è più valida o a una mancata corrispondenza di numeri di versione o impostazioni cultura.These failures are usually the result of an assembly deployed to the wrong location, a native image that is no longer valid, or a mismatch in version numbers or cultures. L'impossibilità da parte di Common Language Runtime di individuare un assembly produce generalmente un'eccezione TypeLoadException nell'applicazione.The common language runtime's failure to locate an assembly typically shows up as a TypeLoadException in your application.

Importante

È necessario eseguire fuslogvw.exe con privilegi di amministratore.You must run fuslogvw.exe with administrator privileges.

Viene installato automaticamente con Visual Studio.This tool is automatically installed with Visual Studio. Per eseguire lo strumento, usare il prompt dei comandi per gli sviluppatori (o il prompt dei comandi di Visual Studio in Windows 7) con credenziali di amministratore.To run the tool, use the Developer Command Prompt (or the Visual Studio Command Prompt in Windows 7) with administrator credentials. Per altre informazioni, vedere Prompt dei comandi.For more information, see Command Prompts.

Al prompt dei comandi digitare quanto segue:At the command prompt, type the following:

fuslogvw  

Nel visualizzatore è riportata una voce per ciascuna associazione di assembly non riuscita.The viewer displays an entry for each failed assembly bind. Per ciascun errore vengono descritti l'applicazione che ha avviato l'associazione, l'assembly interessato, inclusi il nome, la versione, le impostazioni cultura e la chiave pubblica, nonché la data e l'ora dell'errore.For each failure, the viewer describes the application that initiated the bind; the assembly the bind is for, including name, version, culture and public key; and the date and time of the failure.

Per modificare la visualizzazione del percorso del file di logTo change the log location view

  1. Selezionare il pulsante di opzione Predefinito per visualizzare gli errori di associazione per tutti i tipi di applicazione.Select the Default option button to view bind failures for all application types. Per impostazione predefinita, le voci di log vengono archiviate in directory specifiche per utente su disco, nella cache wininet.By default, log entries are stored in per-user directories on disk in the wininet cache.

  2. Selezionare il pulsante di opzione Personalizzato per visualizzare gli errori di associazione in una directory personalizzata specificata.Select the Custom option button to view bind failures in a custom directory that you specify. È necessario specificare il percorso personalizzato in cui il runtime deve archiviare i log impostando il percorso di log personalizzato su un nome di directory valido nella finestra di dialogo Impostazioni log.You must specify the custom location where you want the runtime to store the logs by setting the custom log location in the Log Settings dialog to a valid directory name. Tale directory deve essere pulita e contenere solo file generati dal runtime.This directory should be clean, and only contain files that the runtime generates. Se contiene un file eseguibile che genera un errore da registrare, l'errore non verrà registrato poiché lo strumento cercherà di creare una directory con lo stesso nome del file eseguibile.If it contains an executable that generates a failure to be logged, the failure will not be logged because the tool tries to create a directory with the same name as the executable. Inoltre, il tentativo di esecuzione di un eseguibile dal percorso del log avrà esito negativo.In addition, an attempt to run an executable from the log location will fail.

    Nota

    È preferibile usare il percorso di associazione predefinito anziché quello personalizzato.The default bind location is preferable to the custom bind location. Il runtime archivia il percorso di associazione predefinito nella cache wininet ed effettua la pulizia automaticamente. Se si specifica un percorso di associazione personalizzato la pulizia dovrà essere eseguita manualmente.The runtime stores the default bind location in the wininet cache, and therefore automatically cleans it out. If you specify a custom bind location, you are responsible for cleaning it out.

Per visualizzare i dettagli relativi a un errore specificoTo view details about a specific failure

  1. Nel visualizzatore selezionare il nome dell'applicazione dalla voce desiderata.Select the application name of the desired entry in the viewer.

  2. Fare clic sul pulsante Visualizza file di log.Click the View Log button. In alternativa è possibile fare doppio clic sulla voce selezionata.Alternately, you can double-click the selected entry.

    Vengono visualizzati i seguenti dettagli relativi all'errore di associazione selezionato:The tool displays the following details about the selected bind failure:

    • Causa specifica dell'errore, ad esempio irreperibilità del file o versioni non corrispondenti.The specific reason the bind failed, such as "file not found" or "version mismatch".

    • Informazioni sull'applicazione con cui è stata avviata l'associazione, inclusi il nome, la directory radice dell'applicazione (AppBase) e una descrizione del percorso di ricerca privato, se presente.Information about the application that initiated the bind, including its name, the application's root directory (AppBase), and a description of the private search path, if there is one.

    • Identità dell'assembly cercato.The identity of the assembly the tool is looking for.

    • Descrizione dei criteri di controllo delle versioni applicati a livello di applicazione, editore o amministratore.A description of any Application, Publisher, or Administrator version policies that have been applied.

    • Provenienza o meno dell'assembly dalla Global Assembly Cache.Whether the assembly was found in the global assembly cache.

    • Elenco di tutti gli URL di sondaggio.A list of all probing URLs.

Nell'esempio seguente viene illustrata una voce di log in cui sono visualizzate informazioni dettagliate su un'associazione di assembly non riuscita.The following sample log entry shows detailed information about a failed assembly bind.

*** 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.  

Per eliminare una singola voce dal logTo delete a single entry from the log

  1. Selezionare una voce nel visualizzatore.Select an entry in the viewer.

  2. Fare clic sul pulsante Elimina voce.Click the Delete Entry button.

Per eliminare tutte le voci dal logTo delete all entries from the log

  • Fare clic sul pulsante Elimina tutto.Click the Delete All button.

Per aggiornare l'interfaccia utenteTo refresh the user interface

  • Fare clic sul pulsante Aggiorna.Click the Refresh button. Il visualizzatore non rileva automaticamente le nuove voci di log mentre è in esecuzione.The viewer does not automatically detect new log entries while it is running. Per visualizzarle è necessario scegliere il pulsante Aggiorna.You must use the Refresh button to display them.

Per modificare le impostazioni di logTo change the log settings

  • Scegliere il pulsante Impostazioni per aprire la finestra di dialogo Impostazioni log.Click the Settings button to open the Log Settings dialog.

Per visualizzare la finestra di dialogo Informazioni suTo view the About dialog

  • Fare clic sul pulsante Informazioni su.Click the About button.

Log di associazioni per immagini nativeBinding Logs for Native Images

Per impostazione predefinita, Fuslogvw.exe registra le normali richieste di associazione di assembly.By default, Fuslogvw.exe logs normal assembly bind requests. In alternativa, è possibile registrare le associazioni di assembly per le immagini native create usando Ngen.exe (generatore di immagini native).Alternatively, you can log assembly binds for native images that were created using the Ngen.exe (Native Image Generator).

Per registrare le associazioni di assembly per le immagini nativeTo log assembly binds for native images

  • Nel gruppo Categorie log, selezionare il pulsante di opzione Immagini native.In the Log Categories group, select the Native Images option button.

Nel log seguente viene riportato un errore causato da una dipendenza inesistente nel momento in cui è stata creata l'immagine nativa per l'applicazione.The following log shows a failure caused by a dependency that did not exist when the native image was created for the application. Se le dipendenze in fase di esecuzione differiscono dalle dipendenze durante l'esecuzione di Ngen.exe, l'associazione a un'immagine nativa non è consentita.If the dependencies at run time differ from the dependencies when Ngen.exe is run, binding to a native image is not allowed.

*** 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.  

Nel log seguente viene riportato un errore di associazione dell'immagine nativa che si è verificato perché le impostazioni di sicurezza del computer nel momento in cui è stata eseguita l'applicazione erano diverse da quelle impostate al momento della creazione dell'immagine nativa.The following log shows a native image binding failure that occurred because the security settings on the computer when the application was run were different from the security settings at the time the native image was created.

*** 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.  

Finestra di dialogo Impostazioni logThe Log Settings Dialog

È possibile usare la finestra di dialogo Impostazioni log per effettuare le seguenti operazioni.You can use the Log Settings dialog to perform the following actions.

Per disabilitare la registrazioneTo disable logging

  • Selezionare il pulsante di opzione Log disattivato.Select the Log disabled option button. Questa opzione è selezionata per impostazione predefinita.Note that this option is selected by default.

Per registrare le associazioni di assembly in eccezioniTo log assembly binds in exceptions

  • Selezionare il pulsante di opzione Registra nel testo dell'eccezione.Select the Log in exception text option button. Solo le informazioni meno dettagliate del log Fusion vengono registrate nel testo dell'eccezione.Only the least detailed fusion log information is logged in exception text. Per visualizzare le informazioni complete, usare una delle altre impostazioni.To view full information, use one of the other settings.

    Vedere la nota Importante relativa agli assembly caricati come indipendenti dal dominio.See the Important note regarding assemblies that are loaded as domain neutral.

Per registrare gli errori di associazione di assemblyTo log assembly bind failures

  • Selezionare il pulsante di opzione Registra errori di associazione su disco.Select the Log bind failures to disk option button.

    Vedere la nota Importante relativa agli assembly caricati come indipendenti dal dominio.See the Important note regarding assemblies that are loaded as domain neutral.

Per registrare tutte le associazioni di assemblyTo log all assembly binds

  • Selezionare il pulsante di opzione Registra tutte le associazioni su disco.Select the Log all binds to disk option button.

    Vedere la nota Importante relativa agli assembly caricati come indipendenti dal dominio.See the Important note regarding assemblies that are loaded as domain neutral.

Importante

Quando un assembly viene caricato come indipendente dal dominio, ad esempio impostando la proprietà LoaderOptimization su LoaderOptimization.MultiDomain o LoaderOptimization.MultiDomainHost, l'abilitazione della registrazione può determinare una perdita di memoria in alcuni casi.When an assembly is loaded as domain neutral, for example by setting the LoaderOptimization property to LoaderOptimization.MultiDomain or LoaderOptimization.MultiDomainHost, turning on logging might leak memory in some cases. Ciò può verificarsi se si crea una voce di log quando in un dominio applicazione viene caricato un modulo indipendente dal dominio e successivamente il dominio applicazione viene scaricato.This can happen if a log entry is made when a domain-neutral module is loaded into an application domain, and later the application domain is unloaded. È possibile che la voce di log non venga rilasciata fino alla fine del processo.The log entry might not be released until the process ends. Alcuni debugger prevedono l'abilitazione automatica della registrazione.Some debuggers automatically turn on logging.

Per impostare un percorso di log personalizzatoTo enable a custom log path

  1. Selezionare il pulsante di opzione Attiva percorso personalizzato log.Select the Enable custom log path option button.

  2. Immettere il percorso nella casella di testo Percorso personalizzato log.Enter the path into the Custom log path text box.

Nota

Per l'archiviazione del log associazioni del visualizzatore log associazioni assembly (Fuslogvw.exe) viene usata la cache di Internet Explorer.The Assembly Binding Log Viewer (Fuslogvw.exe) uses the Internet Explorer (IE) cache to store its binding log. In seguito al danneggiamento occasionale della cache di Internet Explorer, è possibile che nella finestra di visualizzazione del visualizzatore log associazioni assembly (Fuslogvw.exe) non siano visualizzati i nuovi log associazioni.Due to occasional corruption in the IE cache, the Assembly Binding Log Viewer (Fuslogvw.exe) can sometimes stop showing new binding logs in the viewing window. In tali circostanze l'infrastruttura di associazione di .NET (fusion) non è in grado di eseguire operazioni di scrittura o lettura dal log associazioni.As a result of this corruption, the .NET binding infrastructure (fusion) cannot write to or read from the binding log. Questo problema non viene rilevato se si usa un percorso di log personalizzato. Per correggere il problema che ha causato il danneggiamento e riattivare la visualizzazione dei log associazioni in fusion, cancellare la cache di Internet Explorer eliminando i file Internet temporanei nella finestra di dialogo Opzioni Internet del programma.(This issue is not encountered if you use a custom log path.) To fix the corruption and allow fusion to show binding logs again, clear the IE cache by deleting temporary internet files from within the IE Internet Options dialog.

Se l'applicazione non gestita ospita Common Language Runtime mediante l'implementazione delle interfacce IHostAssemblyManager e IHostAssemblyStore, le voci di logo non possono essere archiviate nella cache wininet.If your unmanaged application hosts the common language runtime by implementing the IHostAssemblyManager and IHostAssemblyStore interfaces, log entries can't be stored in the wininet cache. Per visualizzare le voci di log di host personalizzati che implementano tali interfacce, è necessario specificare un percorso alternativo per il log.To view log entries for custom hosts that implement these interfaces, you must specify an alternate log path.

Per abilitare la registrazione per le app eseguite nel contenitore delle app WindowsTo enable logging for apps running in the Windows app container

  1. Abilitare un percorso di log personalizzato come descritto nella procedura precedente.Enable a custom log path, as described in the previous procedure. Per impostazione predefinita, le app eseguite nel contenitore delle app Windows dispongono di accesso limitato al disco rigido.By default, apps that are running in the Windows app container have limited access to the hard disk. La directory specificata disporrà di accesso in lettura/scrittura su tutte le app nel contenitore.The directory you specify will have read/write access for all apps in the app container.

  2. Selezionare la casella di controllo Abilita registrazione immersiva.Select the Enable immersive logging check box.

    Nota

    Questa casella è abilitata solo in Windows 8 o versioni successive.This box is enabled only on Windows 8 or later.

Vedere ancheSee Also

TypeLoadException
StrumentiTools
Global Assembly CacheGlobal Assembly Cache
Come il runtime individua gli assemblyHow the Runtime Locates Assemblies
Prompt dei comandiCommand Prompts