Não é possível iniciar o site no IIS (uso por outro processo)

96

Quando tento iniciar um site no IIS, ele diz:

o processo não pode acessar o arquivo porque ele foi usado por outro processo

Eu pesquisei no Google e descobri que outro site pode estar usando a porta 80, mas no MyIIS eu vejo que apenas este site está usando a porta 80. O que mais poderia estar usando a porta 80 ou há outro problema envolvido?

hichris123
fonte
reinicie o sistema uma vez e tente.
عثمان غني
Fiz isso mas novamente ocorreu o mesmo problema
1
Tente configurar o IIS para ser executado em outra porta. Você pode ter outro servidor em execução em sua máquina. Qualquer instância do Apache? Existem alguns worms que abrem a porta 80 como backdoor em computadores infectados.
nunespascal
Esse texto de erro certamente não é útil, mas se você verificar os logs do visualizador de eventos, ele dará uma dica de que houve um erro ao vincular à porta 8080 (usada pelo site em meu IIS). Na minha caixa do Windows 10, ele registrou dois erros de IIS-W3SVC e de HttpEventorigem. Texto do segundo registro de eventos - 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.. A porta 8080 estava em uso por um serviço Oracle. Mudei a porta usada pelo meu site para 8081.
RBT

Respostas:

176

Verifique usando netstat -aonou netstat -aon | findstr 0.0:80em um prompt de comando para ver qual Id do processo está LISTENING para a porta: 80 e, em seguida, observe o Id do processo (PID) no Gerenciador de tarefas com view-> select columns-> process id marcada. Termine esse processo, reinicie o IIS e pronto. ( Observação: se você tiver o Skype instalado, tente sair desse processo primeiro. )

Em um gerenciador de tarefas moderno, você precisa ir na guia Detalhes para pesquisar o PID. Ou, conforme mencionado por @Nikita G nos comentários, você pode usar este comando para localizar a tarefa em seu prompt de comando:

tasklist /FI "PID eq 123"

Nota: alteração 123com o PID retornado do primeiro comando.

Manoj Purohit
fonte
11
Obrigado também pelo comentário do Skype.
Keith
O Skype estava rodando na porta 80 e meus sites também estão configurados na porta 80, então resolvi esse problema desconectando o skype e depois alterei as configurações do skype para rodar na porta 8080. (Não é obrigatório iniciar o IIS)
Umar Shafeeq
1
É divertido quando os produtos da Microsoft brigam ... até que você precisa reiniciar o computador continuamente quando percebe que aconteceu novamente por algum motivo desconhecido e não tem energia para descobrir o que causa isso (até agora). Sério, muito chato.
andyface de
10
Esta é uma maneira um pouco mais fácil de fazer isso. Mostrar apenas itens que escutam na porta 80: netstat -aon | findstr 0.0:80. E, em seguida, assumindo que os retornos PID 123, execute o seguinte para ver qual processo que é: tasklist /FI "PID eq 123".
Nikita G.
1
Para mim, foi o OracleServiceXEserviço que consumiu a porta 8080, à qual o novo site em meu servidor IIIS estava tentando se conectar.
RBT
35

Isso está acontecendo porque um processo diferente está usando a porta 80, pode ser um aplicativo de bate-papo no seu PC como o Skype.

Primeiro, altere a porta padrão do site, que era 80, para alguma porta não utilizada (por exemplo, 8087). Para isso, clique com o botão direito do mouse no aplicativo e clique em 'Editar Vinculação'.

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Após esta mudança de porta, reinicie novamente. Agora você pode identificar qual processo está bloqueando a porta 80 do IIS. Para verificar isso, use o comando netstat, que exibe os detalhes da porta junto com a ID do processo.

Ravindra Bagale
fonte
6
skype era o meu problema
nbushnell
mesmo aqui, o skype estava usando a porta 80. Desative-o em Opções -> Avançado -> Conexão -> "Use as portas 80 e 442 para adicionais ..."
Wagner da Silva
25

Saia do Skype e tente novamente. Eu tive o mesmo problema e acabei de sair do Skype e redefinir meu IIS. Funcionou para mim

Ovais Mumtaz
fonte
2
Você pode alterar a porta que o Skype usa nas configurações
3ventic
10

Você também pode executar esse comando para descobrir qual aplicativo ou serviço está usando a porta e, em seguida, rastreá-lo no gerenciador de tarefas (desde que não seja o serviço Web Deploy Agent).

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

Em seguida, abra o Gerenciador de tarefas, vá para Processos, clique na caixa de seleção "Mostrar processos para todos os usuários" e clique no menu Exibir e vá para as colunas, adicione a coluna PID.

Corresponda a identificação do processo do comando netstat ao PID no gerenciador de tarefas e você encontrará o serviço ou aplicativo que está usando a porta.

Bikey
fonte
2
No caso de você querer evitar gerenciador de tarefas de abertura, execute o seguinte comando após certo para ver qual processo que é: tasklist /FI "PID eq <PID from netstat (without brackets)>".
Nikita G.
2

Como já foi dito, outra coisa pode estar usando a porta 80 ou 443. Era VMWare Workstation Server para mim, mas verifique outras respostas para saber como usar o netstat.

peixe solúvel
fonte
1 para mencionar a porta 443. Eu estava usando netstatpara verificar a porta 80 e nada apareceu. Então você mencionou a porta 443 e aí estava.
jtate
1

Acho que este link fornece uma boa explicação e correção para o problema http://support.microsoft.com/KB/890015

A maior parte do tempo; é causado por um dos dois motivos: 1) a porta 80 está sendo usada por outra coisa e, conforme sugerido por outros, você pode usar netstat -o -n -a | findstr 0.0: 80 para ver se é esse o caso. Se sim, elimine o processo do gerenciador de tarefas (marque para mostrar os processos de todos os usuários)

2) se a porta 80 não for usada, a segunda causa é potencialmente um endereço IP inválido no ListenOnlyList arquivado na chave de registro de HTTP-> Parâmetros. Se você seguir o link para definir a chave manualmente ou na verdade, você pode usar (xp e server 2003) httpcfg delete iplisten -i ipaddresspara excluir o endereço IP inválido. Você deve reiniciar o http depois de editar o endereço ip!

stt106
fonte
@bummi obrigado pelo comentário. Eu adicionei um pouco mais de detalhes agora.
stt106
0

No meu caso, foi o " Serviço de compartilhamento de sincronização " (SyncShareSvc) que estava rodando e usando a porta 80. O netstat mostrou 80 como livre, no entanto. Eu poderia fazer com que o site fosse executado em outra porta, mas não 80. se eu adicionasse um nome de host, o IIS me permitiria iniciar o site, mas seria solicitada a autenticação Digest ao navegar para localhost (ou qualquer nome de host. adicionado). Apenas Anonymous e Forms Auth foram habilitados no IIS ...

Também descobri que, depois de parar o IIS, http://localhost ainda me solicitava a autenticação Digest.

A solução - no meu caso - foi remover Serviços de arquivo e armazenamento> Serviços de arquivos e iSCSI> " Pastas de trabalho " dos serviços instalados (reinicialização necessária).

Depois de remover o serviço "Pastas de trabalho" e reiniciado, o IIS funcionou conforme o esperado.

Adam Ei
fonte
0

Meu caso foi depois de instalar o RD Web Access, os sites padrão originais não puderam ser iniciados. Removida a função RD Web Access ainda a mesma. A vinculação da porta 443 removida resolveu o problema.

usuario
fonte
0

Na maioria das vezes quando isso acontece por desenvolvedores web é o motivo do apache, então se você for ao arquivo de configuração do apache! abra e pesquise com ctrl + f para 80 e mude o ip que você vai ver para 8080 e a frase embaixo dela com 80 para 8080 e você precisa configurar isso no seu xampp, ou no programa que você está usando atualmente

Espero que eu possa ajudar vocês

Arne Schouten
fonte
A questão é sobre IIS, não apache.
C. Helling
1
Sim, mas esses 2 programas interferem um com o outro, então talvez eu ajude alguém que tenha o mesmo problema que eu
Arne Schouten
0

Para obter informações mais significativas, uma maneira é também obter informações de propriedade ao emitir, netstatpara que você saiba o processo que está usando 80 (ligação http padrão) ou 443 (se a ligação https for definida):

 netstat -ab

No meu caso, o culpado foi o vmware:

TCP 0.0.0.0:443 Nome do computador: 0 LISTENING
[vmware-hostd.exe]

O netstat pode ser canalizado em find para pesquisar as portas 80 ou 443 (por exemplo find ":443"), mas essas conexões ativas em particular serão mostradas no início da lista quando forem fáceis de ver.

Alexei
fonte