Erro IIS - O arquivo já está sendo usado por outro processo - 0x80070020


Índice

1- Problema 0x80070020

Eu estava recebendo a mensagem de erro abaixo no IIS do meu computador, quando eu entrava no IIS todos os sites estavam parados e ao tentar iniciar o site era retornado o seguinte erro:

—————————
Gerenciador do Serviços de Informações da Internet (IIS)
—————————
O arquivo já está sendo usado por outro processo. (Exceção de HRESULT: 0x80070020)
—————————

No windows em inglês a mensagem é a seguinte:

—————————
Internet Information Services (IIS) Manager
—————————
The process cannot access the file because it is being used by another process.
(Exception from HRESULT: 0x80070020)
—————————

Esse problema ocorre quando algum outro serviço está utilizando a porta do IIS, pode por exemplo ser o Apache.

2- O skype é o culpado?

Muitas vezes que esbarrei nesse problema, quem estava utilizando a porta https do IIS (porta 443) era o Skype, então primeiramente tente fechar o Skype, iniciar os sites novamente no IIS e testar talvez funcione.

3- Localizando qual serviço está utilizando a porta

Para localizar qual serviço está utilizando a porta do IIS, faça o seguinte:

  1. Abra o prompt de comando e digite:

    $ netstat -aon | find ":80"
    
  2. Na lista retornada, você precisa localizar se tem algum serviço na porta 80, vai ser uma linha como: TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 1072

    Procure por: “TCP 0.0.0.0:80”

  3. Se você não localizar nenhum serviço na porta 80, procure na porta do HTTPs (443), utilize o seguinte comando no Prompt:

    $ netstat -aon | find ":443"
    

    e procure uma linha como: TCP 0.0.0.0:443 0.0.0.0:0 LISTENING 1072

  4. O serviço listado nessa linha é o que está impedindo que o IIS inicie, a última coluna indica o ID do processo. Nesse exemplo, o ID é 1072:

    TCP 0.0.0.0:80 0.0.0.0:0 LISTENING 1072

  5. Agora, abra o Task Manager (botão direito na bandeja de aplicativos do windows e menu: “Task Manager” ou “Gerenciador de Tarefas”) e localize o processo com esse ID.

    • DICA: Se no seu Gerenciador de Tarefas (Task Manager) não é exibido o ID do processo, vá no menu: Exibir / Selecionar Colunas (View / Select columns), e adicione a coluna “Identificador do Processo (PID)”.
  6. Agora, você precisa fechar o serviço que está utilizando a porta no meu caso, o problema era o Skype, então bastou fechar o Skype e eu consegui inciar os sites no IIS.

Referência (em inglês): http://support.microsoft.com/kb/973094


Comentários