Fuslogvw.exe (logboekviewer voor assemblybinding)

In de logboekviewer voor assemblybindingen worden details weergegeven voor assemblybindingen. Met deze informatie kunt u vaststellen waarom de .NET Framework een assembly niet kan vinden tijdens runtime. Deze fouten zijn meestal het gevolg van een assembly die op de verkeerde locatie is geïmplementeerd, een systeemeigen installatiekopie die niet meer geldig is of een niet-overeenkomende versienummers of -culturen. De fout van de runtime in de algemene taal bij het vinden van een assembly wordt meestal weergegeven als een TypeLoadException in uw toepassing.

Belangrijk

U moet fuslogvw.exe uitvoeren met beheerdersbevoegdheden.

Dit hulpprogramma wordt automatisch geïnstalleerd met Visual Studio. Als u het hulpprogramma wilt uitvoeren, gebruikt u Visual Studio Developer Command Prompt of Visual Studio Developer PowerShell met beheerdersreferenties.

Voer bij de opdrachtprompt de volgende opdracht in:

fuslogvw

De viewer geeft een vermelding weer voor elke mislukte assemblybinding. Voor elke fout beschrijft de viewer het volgende:

  • de toepassing die de binding heeft geïnitieerd
  • de assembly waarvoor de binding is bedoeld, inclusief naam, versie, cultuur en openbare sleutel
  • de datum en tijd van de fout

Procedures:

De weergave voor de logboeklocatie wijzigen

  1. Selecteer de knop Standaardoptie om bindingsfouten voor alle toepassingstypen weer te geven. Standaard worden logboekvermeldingen opgeslagen in mappen per gebruiker op schijf in de wininet-cache.

  2. Selecteer de optieknop Aangepast om bindingsfouten weer te geven in een aangepaste map die u opgeeft. U moet de aangepaste locatie opgeven waar de runtime de logboeken moet opslaan door de aangepaste logboeklocatie in het dialoogvenster Logboekinstellingen in te stellen op een geldige mapnaam. Deze map moet schoon zijn en alleen bestanden bevatten die door de runtime worden gegenereerd. Als het een uitvoerbaar bestand bevat dat een fout genereert om te worden geregistreerd, wordt de fout niet geregistreerd omdat het hulpprogramma probeert een map te maken met dezelfde naam als het uitvoerbare bestand. Bovendien mislukt een poging om een uitvoerbaar bestand uit te voeren vanaf de logboeklocatie.

    Notitie

    De standaardbindingslocatie heeft de voorkeur boven de aangepaste bindingslocatie. De runtime slaat de standaardbindingslocatie op in de wininet-cache en schoont deze daarom automatisch op. Als u een aangepaste bindingslocatie opgeeft, bent u verantwoordelijk voor het opschonen ervan.

Details over een specifieke fout weergeven

  1. Selecteer de toepassingsnaam van het gewenste item in de viewer.

  2. Klik op de knop Logboek weergeven . U kunt ook dubbelklikken op de geselecteerde vermelding.

    Het hulpprogramma geeft de volgende details weer over de geselecteerde verbindingsfout:

    • De specifieke reden waarom de binding is mislukt, zoals 'bestand niet gevonden' of 'versie komt niet overeen'.

    • Informatie over de toepassing die de binding heeft geïnitieerd, inclusief de naam, de hoofdmap van de toepassing (AppBase) en een beschrijving van het persoonlijke zoekpad, indien aanwezig.

    • De identiteit van de assembly die het hulpprogramma zoekt.

    • Een beschrijving van alle beleidsregels voor toepassingen, uitgevers of beheerdersversies die zijn toegepast.

    • Of de assembly is gevonden in de globale assembly-cache.

    • Een lijst met alle zoekende URL's.

De volgende voorbeeldlogboekvermelding bevat gedetailleerde informatie over een mislukte assemblybinding.

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

Vermeldingen verwijderen

Ga als volgende te werk om één vermelding uit het logboek te verwijderen:

  1. Selecteer een item in de viewer.

  2. Klik op de knop Item verwijderen .

Ga als volgende te werk om alle vermeldingen uit het logboek te verwijderen:

  • Klik op de knop Alles verwijderen .

De gebruikersinterface vernieuwen

  • Klik op de knop Vernieuwen . De viewer detecteert niet automatisch nieuwe logboekvermeldingen terwijl deze wordt uitgevoerd. U moet de knop Vernieuwen gebruiken om deze weer te geven.

De logboekinstellingen wijzigen

Klik op de knop Instellingen om het dialoogvenster Logboekinstellingen te openen.

Het dialoogvenster Info weergeven

Klik op de knop Info .

Bindingslogboeken voor systeemeigen installatiekopieën

Standaard registreert Fuslogvw.exe normale assemblybindingsaanvragen. U kunt ook assemblybindingen registreren voor systeemeigen installatiekopieën die zijn gemaakt met behulp van de Ngen.exe (Native Image Generator).

Logboekassemblybindingen voor systeemeigen installatiekopieën

  • Selecteer in de groep Logboekcategorieën de optieknop Systeemeigen installatiekopieën .

In het volgende logboek ziet u een fout die wordt veroorzaakt door een afhankelijkheid die niet bestond toen de systeemeigen installatiekopie voor de toepassing werd gemaakt. Als de afhankelijkheden tijdens runtime verschillen van de afhankelijkheden wanneer Ngen.exe wordt uitgevoerd, is binding met een systeemeigen installatiekopieën niet toegestaan.

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

Het volgende logboek toont een systeemeigen installatiekopiebindingsfout die is opgetreden omdat de beveiligingsinstellingen op de computer toen de toepassing werd uitgevoerd, verschillen van de beveiligingsinstellingen op het moment dat de systeemeigen installatiekopie werd gemaakt.

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

Het dialoogvenster Logboekinstellingen

U kunt het dialoogvenster Logboekinstellingen gebruiken om de volgende acties uit te voeren.

Logboekregistratie uitschakelen

  • Selecteer de optieknop Logboek uitgeschakeld . Houd er rekening mee dat deze optie standaard is geselecteerd.

Assemblybindingen in uitzonderingen vastleggen

  • Selecteer de knop Uitzonderingstekst aanmelden . Alleen de minst gedetailleerde fusion-logboekgegevens worden vastgelegd in uitzonderingstekst. Als u alle informatie wilt weergeven, gebruikt u een van de andere instellingen.

    Zie de belangrijke opmerking met betrekking tot assembly's die als domeinneutraal worden geladen.

Mislukte assemblybindingen vastleggen

  • Selecteer de optieknop Logboekbindingsfouten op schijf .

    Zie de belangrijke opmerking met betrekking tot assembly's die als domeinneutraal worden geladen.

Alle assemblybindingen registreren

  • Selecteer de optieknop Alle bindingen op schijf vastleggen.

    Zie de belangrijke opmerking met betrekking tot assembly's die als domeinneutraal worden geladen.

Belangrijk

Wanneer een assembly als domeinneutraal wordt geladen, bijvoorbeeld door de LoaderOptimization eigenschap in te LoaderOptimization.MultiDomain stellen op of LoaderOptimization.MultiDomainHost, kan in sommige gevallen geheugenlekken als u logboekregistratie inschakelt. Dit kan gebeuren als er een logboekvermelding wordt gemaakt wanneer een domeinneutrale module wordt geladen in een toepassingsdomein en het toepassingsdomein later wordt verwijderd. De logboekvermelding wordt mogelijk pas vrijgegeven als het proces is beëindigd. Sommige foutopsporingsprogramma's schakelen logboekregistratie automatisch in.

Een aangepast logboekpad inschakelen

  1. Selecteer de optieknop Aangepast logboekpad inschakelen .

  2. Voer het pad in het tekstvak Aangepast logboekpad in .

Notitie

De logboekviewer voor assemblybinding (Fuslogvw.exe) gebruikt de internetbestandscache om het bindingslogboek op te slaan. Vanwege incidentele beschadigingen in de cache kan de logboekviewer voor assemblybinding (Fuslogvw.exe) soms stoppen met het weergeven van nieuwe bindingslogboeken in het weergavevenster. Als gevolg van deze beschadiging kan de .NET-bindingsinfrastructuur (fusion) niet schrijven naar of lezen uit het bindingslogboek. (Dit probleem treedt niet op als u een aangepast logboekpad gebruikt.) Als u de beschadiging wilt herstellen en wilt toestaan dat bindingslogboeken opnieuw worden weergegeven, wist u de cache van internetbestanden door tijdelijke internetbestanden te verwijderen uit de sectie Browsegeschiedenis onder Interneteigenschappen.

Als uw niet-beheerde toepassing als host fungeert voor de algemene taalruntime door de IHostAssemblyManager interfaces en IHostAssemblyStore te implementeren, kunnen logboekvermeldingen niet worden opgeslagen in de wininet-cache. Als u logboekvermeldingen wilt weergeven voor aangepaste hosts die deze interfaces implementeren, moet u een alternatief logboekpad opgeven.

Logboekregistratie inschakelen voor apps die worden uitgevoerd in de Windows-app-container

  1. Schakel een aangepast logboekpad in, zoals beschreven in de vorige procedure. Apps die worden uitgevoerd in de Windows-app-container hebben standaard beperkte toegang tot de harde schijf. De map die u opgeeft, heeft lees-/schrijftoegang voor alle apps in de app-container.

  2. Schakel het selectievakje Insluitende logboekregistratie inschakelen in.

    Notitie

    Dit vak is alleen ingeschakeld op Windows 8 of hoger.

Zie ook