Service Unavailable HTTP Error 503 – Coisas que só o IIS pode “proporcionar” a você

Standard

Das coisas que mais me irritam a mais especial é a falta de logs precisos por parte do sistema operacional. Em se tratando de Microsoft aí é que a coisa pega e pega FEIO!

Um dos erros que me fizeram gastar aproximadamente 8 horas de troubleshooting foi o erro Service Unavailable HTTP Error 503. Das coisas que mais se alegam são:

– Chaves pré-definidas junto aos serviços do IIS:
http://blogs.iis.net/webtopics/archive/2010/02/17/a-not-so-common-root-cause-for-503-service-unavailable.aspx
e
http://blogs.msdn.com/b/drnick/archive/2006/10/16/configuring-http-for-windows-vista.aspx

– Contas sem autoridade junto ao IIS:
http://social.msdn.microsoft.com/Forums/en/mdmsetup/thread/4689da4a-0452-45b6-bbb4-21ccb76d8ff9

– IIS operando com recursos de 32 bits em plataformas 64 bits:
http://forums.asp.net/p/1502755/3560390.aspx

– IIS com “loucuras” que só Deus para não duvidar:
http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/55f71614-ef1b-4015-b9c8-a42c1e700c25.mspx?mfr=true

– Falaram que pode ser algum sysadmin modificando algo, por isso o downtime:
http://www.checkupdown.com/status/E503_pt.html
http://technet.microsoft.com/pt-br/library/cc736325%28WS.10%29.aspx

Caso você tenha “passado” pelos pontos acima e nenhum deles “sanou” seu problema, e além disso, você tem CERTEZA de que sua appweb está 100% depurada, debug 100% ok, tudo filé, e ainda tem CERTEZA que nenhum admin andou fazendo besteira em seu servidor, a saída pode ser alcançada da seguinte forma:

1 – Observe se existe alguma tabela corrompida em suas consultas SQL na appweb (caso consiga – detalhe, foi meu caso com BDs do tipo Mysql).
2 – Permissões em arquivos remotos ou tempo de resposta a tais chamadas.

Perceba que não é erro em nada de configuração, servidor e etc (evite loucuras como as minhas de tuning, pensando que era um erro de alto processamento, i/o e etc).

Normalmente os logs ineficientes (ex: 503 “n/a” nome do POOL_com_paranente_problema) do IIS falam que o pool de aplicativos “XXX” (nome que você deu ao pool) para rodar aplicativos DOTNET expirou/expulso/estuprou/estrangulou e etc a requisição (quer seja por POST ou GET). (na pasta logfiles dentro de windows – aonde o iis guarda seus logs)
O mais top dos erros:

1. “Connection_Dropped DefaultAppPool”
2. “Connection_Abandoned_By_AppPool DefaultAppPool”

Mesmo que você venha utilizar-se do software de debug que a MS tem, sinto muito em lhe avisar, mas será em vão utilizar-se tal ferramenta!
Siga os meus conselhos nas linhas em negrito, aquilo ali pode salvar seu dia. Use um frontend para executar suas querys e ver se não estão ali as saídas.

Ferramenta: http://support.microsoft.com/kb/919792/

Provedor OLE DB Microsoft para Drivers ODBC (0x80004005)[Microsoft][ODBC Microsoft Access Driver]Erro geral – Não foi possível abrir a chave do Registro ‘Temporary (volatile) Jet DSN for process 0x614 Thread 0x6c0 DBC 0x21dd07c Jet’. (Nome_do_Arquivo), (Número_da_Linha)

Standard

Ao acessar uma página que se conecta a um banco de dados do Access, a seguinte mensagem de erro no navegador pode ser exibida:

Provedor OLE DB Microsoft para Drivers ODBC (0x80004005)[Microsoft][ODBC Microsoft Access Driver]Erro geral – Não foi possível abrir a chave do Registro ‘Temporary (volatile) Jet DSN for process 0x614 Thread 0x6c0 DBC 0x21dd07c Jet’.
(Nome_do_Arquivo), (Número_da_Linha)
A conta usada no acesso à página não tem acesso à chave do Registro HKEY_LOCAL_MACHINE\SOFTWARE\ODBC.
IMPORTANTE: Este artigo contém informações sobre como modificar o Registro. Antes de modificá-lo, faça um backup e certifique-se de que saiba como restaurá-lo caso ocorra algum problema. Para obter informações adicionais sobre como fazer backup, restaurar e modificar o Registro, clique no número abaixo para ler o artigo na Base de Dados de Conhecimento Microsoft (a página pode estar em inglês):

256986 (http://support.microsoft.com/kb/256986/PT-BR/ ) Descrição do Registro do Microsoft Windows

AVISO: O uso incorreto do Editor do Registro pode causar sérios problemas que talvez exijam a reinstalação do sistema operacional. A Microsoft não garante que os problemas resultantes do uso incorreto do Editor do Registro possam ser solucionados. O uso do Editor do Registro é de sua responsabilidade.

  1. Inicie o Editor do Registro (Regedt32.exe).
  2. Selecione a seguinte chave no Registro:
    HKEY_LOCAL_MACHINE\SOFTWARE\ODBC
  3. No menu Segurança, clique em Permissões.
  4. Digite as permissões necessárias à conta que está acessando a página da Web.
  5. Encerre o Editor de Registro.
fonte: http://support.microsoft.com/kb/295297