Correzione: il processo non può accedere al file perché è utilizzato da un altro processo

Diversi utenti Windows riscontrano l'errore " Il processo non può accedere al file perché è utilizzato da un altro processo" . Il più delle volte, il problema si verifica quando l'utente tenta di eseguire un comando netsh. Alcuni utenti segnalano che per loro il messaggio di errore viene visualizzato quando provano a fare clic con il pulsante destro del mouse su un sito Web nello snap-in IIS (Internet Information Services) MMC (Microsoft Management Console).

Il processo non può accedere al file perché è utilizzato da un altro processo

Il problema si verifica in Windows Vista, Windows 7, Windows 8.1, Windows 10 e in varie versioni di Windows Server.

Cosa fa sì che il processo venga utilizzato da un altro processo?

Abbiamo esaminato questo particolare problema esaminando i vari rapporti degli utenti e le strategie di riparazione utilizzate per risolvere il problema. Sulla base di ciò che siamo stati in grado di raccogliere, ci sono diversi scenari comuni che attiveranno questo particolare messaggio di errore:

  • Il comando richiede i privilegi di amministratore : se si verifica l'errore all'interno di un terminale, è molto probabile che non si disponga di privilegi di amministratore per apportare le modifiche. Diversi utenti in una situazione simile sono riusciti a risolvere il problema concedendo i privilegi di amministratore.
  • Un altro processo sta usando la porta 80 o la porta 443 - Questo è tipico con i computer che eseguono IIS (Internet Information Services). Se un altro processo utilizza queste due porte, verrà visualizzato questo messaggio di errore.
  • La sottochiave del registro ListenOnlyList non è configurata correttamente . Un altro scenario comune con IIS (Internet Information Services) che attiverà questo particolare errore è una sottochiave del registro ListenOnlyList configurata in modo errato.

Se al momento stai lottando per risolvere questo particolare messaggio di errore, questo articolo ti fornirà una raccolta di passaggi verificati per la risoluzione dei problemi. In basso, hai una raccolta di metodi che altri utenti in una situazione simile hanno usato per risolvere il problema.

Per i migliori risultati, segui i metodi di seguito in ordine fino a quando non trovi una correzione efficace nella risoluzione dell'errore nel tuo particolare scenario.

Cominciamo!

Metodo 1: esecuzione del comando con privilegi di amministratore

Se ricevi questo errore quando tenti di eseguire un comando netsh, è probabile che si verifichi perché non hai i privilegi di amministratore. Si dice che ciò si verifichi più spesso quando l'utente tenta di eseguire un comando che aggiunge esclusioni all'intervallo di porte dinamiche per app di Windows native o applicazioni di terze parti.

Tieni presente che un'operazione di questo tipo richiederà i privilegi di amministratore. Per assicurarti che la finestra CMD in cui stai tentando di eseguire l'azione disponga dei privilegi di amministratore, procedi nel seguente modo:

  1. Premi il tasto Windows + R per aprire una finestra di dialogo Esegui. Quindi, digitare " cmd " e premere Ctrl + Maiusc + Invio per aprire un prompt dei comandi elevato.

    Apertura di una finestra del prompt dei comandi elevata
  2. Quando richiesto dall'UAC (controllo dell'account utente), fare clic su per concedere i privilegi di amministratore.
  3. Nel prompt dei comandi con privilegi elevati, esegui nuovamente il comando e verifica se stai ancora riscontrando lo stesso messaggio di errore.

Se ricevi ancora l'errore " Il processo non può accedere al file perché è utilizzato da un altro processo" o questo scenario non era applicabile, passa al metodo successivo di seguito.

Metodo 2: impostazione di un intervallo IP diverso

Se stai cercando di risolvere un conflitto DNS di conflitto usando netsh e il metodo sopra non ti è stato d'aiuto, potresti provare un approccio diverso.

Diversi utenti che lottano per risolvere lo stesso messaggio di errore hanno scoperto che il conflitto è stato risolto dopo aver tentato di impostare un intervallo IP completamente diverso invece di creare un intervallo di esclusione.

Di seguito sono riportati alcuni comandi che un utente interessato ha eseguito correttamente per risolvere un conflitto tra DNS e Quickbooks:

 netsh int ipv4 set dynamicport tcp start=10000 num=1000 netsh int ipv4 set dynamicport udp start=10000 num=1000 

Nota: assicurarsi che il terminale in cui si sta eseguendo il comando disponga dei privilegi di amministratore.

Se questo metodo non ha risolto il conflitto o non è applicabile alla situazione che stai riscontrando, passa al metodo finale.

Metodo 3: risoluzione del conflitto di porte IIS

Se si riscontra il problema durante il tentativo di fare clic con il pulsante destro del mouse su un elemento del sito Web all'interno dello snap-in IIS MMC (facendo clic su Start non si fa nulla), sarà necessario utilizzare l'utilità Netstat.exe per capire se un altro processo è utilizzando la porta 80 e la porta 443.

Questo problema è abbastanza comune con i computer che eseguono Microsoft IIS 6.0 e 7.0. Sulla base della documentazione ufficiale di Microsoft, verrà visualizzato il messaggio di errore se una delle seguenti condizioni è applicabile alla situazione attuale:

  • La sottochiave del Registro di sistema ListenOnlyList non è configurata correttamente sul computer in esecuzione IIS.
  • Un altro processo sta utilizzando la porta TCP (80) o SSL (443) richiesta da IIS.

Per risolvere questo problema, è necessario distribuire l'utilità Netstat.exe al fine di determinare se un altro processo sta utilizzando le porte specificate sopra. Se l'utilità determina che le porte non vengono utilizzate, esamineremo la sottochiave ListenOnlyList per vedere se è configurata correttamente.

Ecco una guida passo-passo per tutto:

  1. Premi il tasto Windows + R per aprire una finestra di dialogo Esegui. Quindi, digitare " cmd " e premere Ctrl + Maiusc + Invio per aprire un prompt dei comandi elevato. Quando richiesto dall'UAC (controllo dell'account utente), fare clic su per concedere i privilegi di amministratore.

    Apertura di una finestra del prompt dei comandi elevata
  2. All'interno del prompt dei comandi con privilegi elevati, eseguire il comando seguente per avviare l'utilità Netstat.exe :
     netstat -ano 
  3. Una volta ottenuto un ritorno, scorrere l'elenco delle connessioni attive e verificare se le porte 50 e 443 vengono utilizzate attivamente da un processo diverso.

    Verifica se le porte vengono utilizzate da un processo diverso

    Nota: se le porte vengono utilizzate attivamente da un processo diverso, sei appena riuscito a identificare l'origine del problema. In questo caso, cercare online passaggi specifici su come risolvere il conflitto di porte in base al PID della porta.

  4. Chiudi il prompt dei comandi con privilegi elevati poiché non avremo bisogno dei privilegi di amministratore per i passaggi successivi.
  5. Se le porte non vengono utilizzate attivamente, premere il tasto Windows + R per aprire una finestra di dialogo Esegui. Quindi, digita " regedit " e premi Invio per aprire l' Editor del Registro di sistema . Quando richiesto dall'UAC (controllo dell'account utente), fare clic su per concedere i privilegi di amministratore.

    Apertura dell'utilità Editor del registro
  6. All'interno dell'editor del Registro di sistema, utilizzare il riquadro di sinistra per spostarsi nella seguente posizione:
     HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ HTTP \ Parameters \ ListenOnlyList 

    Nota: nel caso in cui la sottochiave ListenOnlyList non sia presente, non è necessario crearne una poiché un indirizzo IP di 0.0.0.0 verrà utilizzato per impostazione predefinita.

  7. Prima di procedere e modificare la sottochiave ListenOnlyList, è necessario interrompere il servizio HTTP che esegue IIS. Quindi metti l'Editor del Registro di sistema in background poiché torneremo su di esso tra un momento.
  8. Successivamente, premi il tasto Windows + R per aprire una finestra di dialogo Esegui, digita " cmd " e premi Invio per aprire un'altra finestra del prompt dei comandi.

    Esegui finestra di dialogo: cmd
  9. Nel prompt Cmd, eseguire il comando seguente e premere Invio per interrompere il servizio HTTP responsabile dell'esecuzione di IIS:
     net stop http 
  10. Quando ti viene chiesto se desideri continuare questa operazione, digita "Y" e premi Invio per confermare l'operazione.

    Disabilitazione del servizio HTTP
  11. Una volta disabilitato il servizio HTTP, chiudere la finestra del prompt dei comandi e tornare all'editor del registro.
  12. Con la sottochiave ListenOnlyList selezionata, passare al riquadro di destra e assicurarsi che contenga indirizzi IP validi. Se si individua un indirizzo IP non valido, rimuoverlo o modificarlo per riflettere una voce con un indirizzo IP valido.

    Eliminazione dei valori binari con IP non validi

    Nota: se è presente la sottochiave ListenOnlyList e viene elencato l'indirizzo 0.0.0.0, è necessario eliminare tutti gli altri indirizzi IP.

  13. Chiudi l'Editor del Registro di sistema e riavvia il computer.
  14. Al prossimo avvio, il servizio HTTP dovrebbe essere avviato automaticamente. Ma solo per essere sicuri, premi il tasto Windows + R per aprire un'altra finestra di dialogo Esegui. Quindi, digitare " cmd " e premere Invio per aprire una finestra del prompt dei comandi.

    Apertura di una normale finestra del prompt dei comandi
  15. Nel prompt dei comandi appena aperto, digitare il comando seguente per assicurarsi che il servizio HTTP sia avviato:
     net start http 

    Nota: se ti viene restituito un messaggio che dice che "Il servizio richiesto è già stato avviato", sei a posto.

  16. Tentare di avviare un servizio dallo snap-in Microsoft Management Console (MMC) di Microsoft Internet Information Services (IIS). Non dovresti più riscontrare l'errore "Impossibile accedere al file perché è utilizzato da un altro processo" .

Articoli Interessanti