Het patchen van .NET Framework mislukt met een fout: Access wordt geweigerd of Bestand in gebruik

In dit artikel kunt u het probleem oplossen waarbij de microsoft-.NET Framework fouten bij het patchen bij het gebruik of de vergrendelde installatie van een patch oplossen.

Oorspronkelijke productversie:   .NET Framework
Oorspronkelijk KB-getal:   2263996

Symptomen

Als een assemblybestand in de GaC (Global Access Cache) is vergrendeld of in gebruik is, kunnen er .NET Framework patches mislukken. Dit probleem kan worden verergerd door een fout in de manier waarop samenvoeging de terugrol verwerkt en kan ertoe leiden dat bestanden worden verwijderd. Dit leidt ertoe dat beheerde toepassingen (die toepassingen die afhankelijk zijn van frameworkassemblage) mislukken.

Het foute patch MSI Verbose-logboek kan zoiets bevatten:

'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\system.dll' vanwege systeemfout: Access wordt geweigerd.
06-22-10 11:57:26 DDSet_Status: 100 ms slapen...
MSI (s) (54!70) [11:57:26:738]: Product: Microsoft .NET Framework 2.0 Service Pack 2 -- Er is een probleem met dit Windows Installer-pakket.
Raadpleeg het installatielogboek voor meer informatie.
Er is een probleem met dit Windows Installer-pakket.
Raadpleeg het installatielogboek voor meer informatie.
06-22-10 11:57:26 DDSet_CARetVal: 0
06-22-10 11:57:26 DDSet_Exit: InstallAssembly is beëindigd met de retourwaarde 1603
MSI (s) (54:94) [11:57:26:758]: Gebruikersbeleidswaarde 'DisableRollback' is 0
MSI (s) (54:94) [11:57:26:758]: Waarde voor machinebeleid 'DisableRollback' is 0
Actie beëindigd 11:57:26: InstallExecute. Retourwaarde 3.

Of

02-22-10 08:38:32 DDSet_Status: Slapen 100 ms...
02-22-10 08:38:32 DDSet_Error: Installatie van installatie mislukt
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.EnterpriseServices.dll. IAssemblyCache->InstallAssembly() geretourneerd -2147024864.
02-22-10 08:38:32 DDSet_Error: Installatie van installatie mislukt
'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.EnterpriseServices.dll' vanwege systeemfout:
Het proces heeft geen toegang tot het bestand omdat het door een ander proces wordt gebruikt.

Oorzaak

Als er assemblies worden gebruikt of vergrendeld wanneer een patch wordt toegepast, mislukt de patch.

Oplossing

Dit probleem kan worden voorkomen door ervoor te zorgen dat er geen processen worden uitgevoerd die een vergrendeling op de vergaderingen kunnen zetten.

Als u wilt bepalen of er vergaderingen worden gebruikt, volgt u de volgende stappen:

  1. Download procexp.exe om proces te ontdekken dat assemblies vergrendelt.

  2. Start procexp.exe en druk vervolgens op Ctrl+F om het zoekvenster van Process Explorer te openen.

  3. Typ in het tekstvak Handle of DLL substring Assembly en selecteer Vervolgens Zoeken.

    Schermafbeelding van de stappen voor het zoeken naar vergadering.

  4. Alle bestanden die worden vermeld, kunnen van invloed zijn op de installatie van de patch. Beëindig alle vermelde processen of sluit de bijbehorende toepassingen. Ga hiervoor als volgt te werk:

    1. Selecteer de procesnaam die u wilt beëindigen in het zoekvenster procesverkenner om het proces te zoeken.

    2. Klik met de rechtermuisknop op de procesnaam in het deelvenster Proces.

    3. Selecteer Proces om het proces te beëindigen.

      Schermafbeelding toont stappen om een proces te voltooien.