Visualizzatore log associazione assembly (Fuslogvw.exe)
Aggiornamento: novembre 2007
Il Visualizzatore log associazione assembly consente di visualizzare i dettagli relativi alle associazioni di assembly. Queste informazioni consentono di diagnosticare per quale motivo non sia possibile individuare un assembly in fase di esecuzione. Gli errori individuati 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. L'impossibilità di Common Language Runtime di individuare un assembly produce generalmente un'eccezione TypeLoadException.
Per visualizzare il contenuto del registro associazione assembly
- Eseguire Fuslogvw.exe dal Prompt dei comandi di SDK.
Nel visualizzatore è riportata una voce per ciascuna associazione di assembly non riuscita. 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.
Per modificare la visualizzazione del percorso del registro
Selezionare il pulsante di opzione Default (Predefinito) per visualizzare gli errori di associazione per tutti i tipi di applicazione. Per impostazione predefinita, le voci di log vengono archiviate in directory specifiche per utente su disco, nella cache di wininet.
Selezionare il pulsante di opzione Custom per visualizzare gli errori di associazione in una directory personalizzata specificata. È necessario specificare il percorso personalizzato in cui devono essere archiviati i log impostando il percorso di log personalizzato su un nome di directory valido nella finestra di dialogo Log Settings (Impostazioni log). Tale directory deve essere pulita e contenere solo file generati dal runtime. 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. Inoltre, il tentativo di esecuzione di un eseguibile dal registro avrà esito negativo.
Nota
È preferibile utilizzare il percorso di associazione predefinito anziché quello personalizzato. Il runtime memorizza il percorso di associazione predefinito nella cache di wininet e rimuove tali informazioni automaticamente. Se si specifica un percorso di associazione personalizzato la pulitura dovrà essere eseguita manualmente.
Per visualizzare i dettagli relativi a un errore specifico
Nel visualizzatore selezionare il nome dell'applicazione dalla voce desiderata.
Fare clic sul pulsante Visualizza file di log. In alternativa è possibile fare doppio clic sulla voce selezionata.
Nello strumento vengono visualizzati i seguenti dettagli relativi all'errore di associazione selezionato:
Causa specifica dell'errore, ad esempio irreperibilità del file o incompatibilità di versioni.
Informazioni sull'applicazione con cui è stata avviata l'associazione, inclusi il nome, la directory principale dell'applicazione (AppBase) e una descrizione del percorso di ricerca privato, se presente.
Identità dell'assembly cercato.
Descrizione dei criteri di controllo delle versioni applicati a livello di applicazione, editore o amministratore.
Provenienza o meno dell'assembly dalla Global Assembly Cache.
Elenco di tutti gli URL di ricerca.
Nell'esempio riportato di seguito viene illustrata una voce del registro in cui sono visualizzate informazioni dettagliate su un'associazione di assembly non riuscita.
** 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/en-US/graphicfailtest.resources.DLL.
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft.NET/FrameworkSDK/Samples/Tutorials/resourcesandlocalization/graphic/cs/en-US/graphicfailtest.resources/graphicfailtest.resources.DLL.
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft.NET/FrameworkSDK/Samples/Tutorials/resourcesandlocalization/graphic/cs/en-US/graphicfailtest.resources.EXE.
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft.NET/FrameworkSDK/Samples/Tutorials/resourcesandlocalization/graphic/cs/en-US/graphicfailtest.resources/graphicfailtest.resources.EXE.
LOG: All probing URLs attempted and failed.
Per eliminare una singola voce dal registro
Selezionare una voce nel visualizzatore.
Fare clic sul pulsante Elimina voce.
Per eliminare tutte le voci dal registro
- Fare clic sul pulsante Elimina tutto.
Per aggiornare l'interfaccia utente
- Scegliere il pulsante Aggiorna. Il visualizzatore non rileva automaticamente le nuove voci di registro quando è in esecuzione. Per visualizzarle è necessario fare clic sul pulsante Aggiorna.
Per modificare le impostazioni del log
- Scegliere il pulsante Settings (Impostazioni) per visualizzare la finestra di dialogo Log Settings (Impostazioni log).
Per visualizzare la finestra di dialogo About
- Scegliere il pulsante About (Informazioni su).
Log associazioni per immagini native
Per impostazione predefinita, Fuslogvw.exe registra le normali richieste di associazione di assembly. In alternativa, è possibile registrare le associazioni di assembly per le immagini native create utilizzando Generatore di immagini native (Ngen.exe).
Per registrare le associazioni di assembly per le immagini native
- Nel gruppo Categorie log, selezionare il pulsante di opzione Immagini native.
Nel log seguente viene riportato un errore causato da una dipendenza inesistente nel momento in cui è stata creata l'immagine nativa per l'applicazione. Se le dipendenze in fase di esecuzione differiscono dalle dipendenze durante l'esecuzione di Ngen.exe, l'associazione a un'immagine nativa non è consentita.
** 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.
** 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 Log Settings
È possibile utilizzare la finestra di dialogo Log Settings (Impostazioni log) per definire le seguenti impostazioni.
Per disattivare la registrazione
- Selezionare il pulsante di opzione Log disabled (Log disattivato). Questa opzione è selezionata per impostazione predefinita.
Per registrare le associazioni di assembly in eccezioni
Selezionare il pulsante di opzione Log in exception text (Registra nel testo dell'eccezione).
Vedere la nota Importante relativa agli assembly caricati come indipendenti dal dominio.
Per registrare gli errori di associazione di assembly
Selezionare il pulsante di opzione Log bind failures to disk (Registra errori di associazione su disco).
Vedere la nota Importante relativa agli assembly caricati come indipendenti dal dominio.
Per registrare tutte le associazioni di assembly
Selezionare il pulsante di opzione Log all binds to disk (Registra tutte le associazioni su disco).
Vedere la nota Importante relativa agli assembly caricati come indipendenti dal dominio.
Nota importante: |
---|
Quando un assembly viene caricato come indipendente dal dominio, ad esempio impostando la proprietà LoaderOptimization su LoaderOptimization.MultiDomain o LoaderOptimization.MultiDomainHost, l'attivazione della registrazione può determinare una perdita di memoria in alcuni casi. 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. È possibile che la voce di log non venga rilasciata fino alla fine del processo. Alcuni debugger prevedono l'attivazione automatica della registrazione. |
Per impostare un percorso di log personalizzato
Selezionare il pulsante di opzione Enable custom log path (Attiva percorso personalizzato log).
Immettere il percorso nella casella di testo Custom log path (Percorso personalizzato log).
Nota
Per l'archiviazione del registro associazione di Visualizzatore log associazione assembly (Fuslogvw.exe) viene utilizzato Internet Explorer. In seguito al danneggiamento occasionale della cache di Internet Explorer, è possibile che in Visualizzatore log associazione assembly (Fuslogvw.exe) non vengano più visualizzati nuovi registri associazione nella finestra di visualizzazione. In tali circostanze l'infrastruttura di associazione di .NET (fusion) non è in grado di eseguire operazioni di scrittura o lettura dal registro associazione. Questo problema non viene rilevato se si utilizza un percorso personalizzato per il registro. Per correggere il problema che ha causato il danneggiamento e riattivare la visualizzazione dei registri associazione in fusion, cancellare la cache di Internet Explorer eliminando i file temporanei Internet nella finestra di dialogo Opzioni Internet del programma.
Se l'applicazione non gestita ospita Common Language Runtime mediante l'implementazione delle interfacce IHostAssemblyManager e IHostAssemblyStore, le voci di logo non possono essere memorizzate nella cache wininet. Per visualizzare le voci di log di host personalizzati che implementano tali interfacce, è necessario specificare un percorso alternativo per il log.
Vedere anche
Concetti
Come il runtime individua gli assembly