Impossibile avviare il sito in IIS (utilizzare da un altro processo)


96

Quando provo ad avviare un sito in IIS dice:

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

Ho cercato in Google e ho scoperto che un altro sito potrebbe aver utilizzato la porta 80 ma in MyIIS vedo che solo questo sito utilizza la porta 80. Cos'altro potrebbe utilizzare la porta 80 o è coinvolto un altro problema?


riavvia il sistema una volta, quindi prova.
عثمان غني

l'ho fatto ma si è verificato di nuovo lo stesso problema

1
Prova a configurare IIS per l'esecuzione su un'altra porta. Potresti avere un altro server in esecuzione sulla tua macchina. Qualche istanza di Apache? Ci sono alcuni worm che aprono la porta 80 come backdoor anche sui computer infetti.
nunespascal

Questo testo di errore non è certamente utile, ma se controlli i registri del visualizzatore di eventi, ti dà qualche suggerimento che si è verificato un errore durante il collegamento alla porta 8080 (utilizzata dal sito Web nel mio IIS). Sulla mia scatola di Windows 10 ha registrato due errori da IIS-W3SVC e l' HttpEventorigine. Testo del secondo registro eventi - Unable to bind to the underlying transport for [::]:8080. The IP Listen-Only list may contain a reference to an interface which may not exist on this machine. The data field contains the error number.. La porta 8080 era utilizzata da un servizio Oracle. Ho cambiato la porta utilizzata dal mio sito web in 8081.
RBT

Risposte:


176

Controllare utilizzando netstat -aono netstat -aon | findstr 0.0:80in un prompt dei comandi per vedere quale ID processo è IN ASCOLTO sulla porta: 80 e quindi controllare l'ID processo (PID) in Task Manager con Visualizza- > seleziona colonne-> ID processo selezionato. Termina il processo, riavvia IIS e il gioco è fatto. ( Nota: se hai installato Skype , prova prima a uscire da quel processo. )

In un moderno Task Manager, è necessario andare sulla scheda Dettagli per cercare il PID. Oppure, come menzionato da @Nikita G nei commenti, puoi usare questo comando per trovare l'attività dal tuo prompt dei comandi:

tasklist /FI "PID eq 123"

Nota: modifica 123con il PID restituito dal primo comando.


11
Grazie anche per il commento su Skype.
Keith

Skype era in esecuzione sulla porta 80 e anche i miei siti Web sono configurati sulla porta 80, quindi ho risolto questo problema disconnettendomi da skype e successivamente ho modificato le impostazioni di skype per l'esecuzione sulla porta 8080. (Non obbligatorio per avviare IIS)
Umar Shafeeq

1
È divertente quando i prodotti Microsoft combattono ... finché non devi continuare a riavviare il computer quando ti rendi conto che è successo di nuovo per qualche motivo sconosciuto e non hai l'energia per capire cosa lo causa (fino ad ora). Scherzi a parte, molto fastidioso.
andyface

10
Ecco un modo un po 'più semplice per farlo. Mostra solo gli oggetti in ascolto sulla porta 80: netstat -aon | findstr 0.0:80. E poi assumendo che restituisce PID 123, eseguire il seguente per vedere quale processo che è: tasklist /FI "PID eq 123".
Nikita G.

1
Per me era un OracleServiceXEservizio che aveva consumato la porta 8080 a cui il nuovo sito Web nel mio server IIIS stava cercando di collegarsi.
RBT

35

Sta accadendo perché un processo diverso utilizza la porta 80, potrebbe essere un'applicazione di chat sul tuo PC come Skype.

Per prima cosa, cambia la porta del sito web predefinito che era 80 con una porta inutilizzata (ad esempio 8087). Per ottenere ciò, fare clic con il pulsante destro del mouse sull'applicazione e quindi su "Modifica associazione".

inserisci qui la descrizione dell'immagine

inserisci qui la descrizione dell'immagine

Dopo questo cambio di porta, riavviare di nuovo. Ora puoi identificare quale processo sta bloccando la porta IIS 80. Per controllare questo usa il comando netstat che mostra i dettagli della porta insieme all'ID del processo.


6
skype era il mio problema
nbushnell

lo stesso qui, skype stava usando la porta 80. Disabilitalo in Opzioni -> Avanzate -> Connessione -> "Usa porta 80 e 442 per ulteriori ..."
Wagner da Silva

25

Esci da Skype e riprova. Ho riscontrato lo stesso problema e mi sono appena disconnesso da Skype, quindi ho ripristinato IIS. Ha funzionato per me.


2
Puoi modificare la porta utilizzata da
3ventic

10

È anche possibile eseguire questo comando per scoprire quale applicazione o servizio sta utilizzando la porta e quindi rintracciarlo in Task Manager (a condizione che non sia il servizio Web Deploy Agent).

netstat -o -n -a | findstr 0.0: 80

Quindi apri Task manager, vai su Processi, fai clic sulla casella di controllo "Mostra processi per tutti gli utenti", quindi fai clic sul menu Visualizza e vai alle colonne, aggiungi la colonna PID.

Abbina l'ID processo dal comando netstat al PID nel task manager e troverai il servizio o l'applicazione che utilizza la porta.


2
Nel caso in cui si vuole evitare task manager di apertura, eseguire il seguente comando subito dopo per vedere quale processo che è: tasklist /FI "PID eq <PID from netstat (without brackets)>".
Nikita G.

2

Come altri hanno detto, qualcos'altro potrebbe usare la porta 80 o 443. Per me era VMWare Workstation Server, ma controlla altre risposte su come usare netstat.


+1 per aver menzionato la porta 443. Stavo usando netstatper controllare la porta 80 e non è stato mostrato nulla. Poi hai menzionato la porta 443 ed eccola lì.
jtate

1

Penso che questo collegamento offra una spiegazione abbastanza buona e risolva questo problema http://support.microsoft.com/KB/890015

La maggior parte delle volte; è causato da uno dei due motivi: 1) la porta 80 è usata da qualcos'altro e come suggerito da altri puoi usare netstat -o -n -a | findstr 0.0: 80 per vedere se è così. Se sì, interrompi il processo dal task manager (spunta Mostra processi da tutti gli utenti)

2) se la porta 80 non viene utilizzata, la seconda causa è potenzialmente un indirizzo ip non valido in ListenOnlyList archiviato nella chiave di registro di HTTP-> Parameters. Se segui il link per impostare la chiave manualmente o infatti puoi usare (xp e server 2003) httpcfg delete iplisten -i ipaddressper cancellare l'indirizzo ip non valido. È necessario riavviare l'http una volta modificato l'indirizzo ip!


@bummi grazie per il commento. Ho aggiunto un po 'più di dettagli ora.
stt106

0

Nel mio caso, era il " Sync Share Service " (SyncShareSvc) che era in esecuzione e utilizzava la porta 80. netstat mostrava 80 come libero, però. Potrei far funzionare il sito su un'altra porta, ma non su 80. Se aggiungessi un nome host, IIS mi consentirebbe di avviare il sito, ma mi verrà richiesta l'autenticazione del digest durante la navigazione su localhost (o qualsiasi nome host che ho aggiunto). Solo Anonymous e Forms Auth erano abilitati in IIS ...

Ho anche scoperto che, dopo aver arrestato IIS, http://localhostmi chiedeva ancora l'autenticazione del digest.

La soluzione - nel mio caso - è stata quella di rimuovere Servizi file e archiviazione> Servizi file e iSCSI> " Cartelle di lavoro " dai servizi installati (riavvio richiesto).

Dopo aver rimosso il servizio "Cartelle di lavoro" e riavviato, IIS ha funzionato come previsto.


0

Il mio caso era dopo l'installazione di Accesso Web Desktop remoto, i siti Web predefiniti originali non potevano essere avviati. Rimosso il ruolo Accesso Web Desktop remoto sempre lo stesso. Il binding della porta 443 rimosso ha risolto il problema.


0

La maggior parte delle volte quando questo accade dagli sviluppatori web è il motivo per apache, quindi se vai al file di configurazione da apache! aprilo e cerca con ctrl + f su 80 e cambia l'ip che vedrai in 8080 e la frase sotto lì con 80 a 8080 e devi configurarlo in te xampp, o il programma che stai usando attualmente

Spero di aiutarvi ragazzi


La domanda riguarda IIS, non Apache.
C. Helling

1
Sì, ma questi 2 programmi interferiscono tra loro quindi forse aiuterò qualcuno che ha lo stesso problema che ho avuto io
Arne Schouten,

0

Per ottenere informazioni più significative, un modo è ottenere anche informazioni sulla proprietà durante l'emissione in netstatmodo da conoscere il processo che utilizza 80 (binding http predefinito) o 443 (se è definito il binding https):

 netstat -ab

Nel mio caso il colpevole era vmware:

TCP 0.0.0.0:443 ComputerName: 0
LISTENING [vmware-hostd.exe]

netstat può essere reindirizzato in find per cercare le porte 80 o 443 (ad esempio find ":443"), ma queste particolari connessioni attive verranno mostrate all'inizio dell'elenco in quanto sono facili da vedere.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.