Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo illustra come risolvere il problema in cui vengono applicati gli errori di applicazione di patch a Microsoft .NET Framework quando gli assembly sono in uso o bloccati quando viene applicata una patch.
Versione originale del prodotto: .NET Framework
Numero KB originale: 2263996
Sintomi
Se un file di assembly nella Global Access Cache (GAC) è stato bloccato o è in uso, può causare l'esito negativo delle patch di .NET Framework. Questo problema può essere esacerbato da un bug nel modo in cui fusion gestisce il rollback e può causare l'eliminazione dei file. In questo modo, le applicazioni gestite (quelle che dipendono dagli assembly del framework) avranno esito negativo.
Il log dettagliato dell'identità del servizio gestito dell'identità del servizio gestito non riuscito potrebbe contenere un codice simile al seguente:
'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\system.dll' a causa di un errore di sistema: Accesso negato.
06/22/10 11:57:26 DDSet_Status: Dormire 100 ms...
MSI (s) (54!70) [11:57:26:738]: Prodotto: Microsoft .NET Framework 2.0 Service Pack 2 - Si è verificato un problema con questo pacchetto di Windows Installer.
Per altre informazioni, vedere il log di installazione.
Si è verificato un problema con questo pacchetto di Windows Installer.
Per altre informazioni, vedere il log di installazione.
06/22/10 11:57:26 DDSet_CARetVal: 0
22/06/10 11:57:26 DDSet_Exit: InstallAssembly è terminato con il valore restituito 1603
MSI (s) (54:94) [11:57:26:758]: il valore dei criteri utente 'DisableRollback' è 0
MSI (s) (54:94) [11:57:26:758]: Il valore del criterio computer 'DisableRollback' è 0
Azione terminata 11:57:26: InstallExecute. Valore restituito 3.
oppure
22/02/10 08:38:32 DDSet_Status: Dormire 100 ms...
22/02/10 08:38:32 DDSet_Error: Non è stato possibile installare l'assembly
C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.EnterpriseServices.dll. IAssemblyCache-InstallAssembly>() ha restituito -2147024864.
22/02/10 08:38:32 DDSet_Error: Non è stato possibile installare l'assembly
'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.EnterpriseServices.dll' a causa di un errore di sistema:
Il processo non può accedere al file perché è in uso da un altro processo.
Motivo
Se gli assembly sono in uso o bloccati quando viene applicata una patch, la patch avrà esito negativo.
Risoluzione
Questo problema può essere evitato assicurandosi che i processi non siano in esecuzione che possano mettere un blocco sugli assembly.
Per rilevare se gli assembly vengono usati, seguire questa procedura:
Scaricare procexp.exe per individuare il processo che blocca gli assembly.
Avviare procexp.exe e quindi premere CTRL+F per aprire la finestra Di ricerca di Esplora processi.
Nella casella di testo Gestisci o DLL sottostringa digitare Assembly e quindi selezionare Cerca.
Tutti i file elencati potrebbero avere un impatto sull'installazione della patch. Terminare tutti i processi elencati o chiudere le applicazioni associate. Per fare questo, segui questi passaggi:
Selezionare il nome del processo che si vuole terminare nella finestra Di ricerca di Esplora processi per individuare il processo.
Fare clic con il pulsante destro del mouse sul nome del processo nel riquadro Processo .
Selezionare Termina processo per terminare il processo.