Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Tratamento de erros no Classic Asp sem erro de tempo limite


Acredito que sua pergunta seja "Como faço para interceptar o erro de tempo limite do script e gravá-lo no banco de dados". Então a resposta é que você não pode fazer isso com On error resume next.

O problema é que o ASP determinou que seu script foi executado por muito tempo. Para que seu código intercepte e registre o erro, seu código precisa continuar, mas é exatamente isso que o ASP determinou que não deveria acontecer, pois seu tempo acabou.

Além disso, em geral, a menos que você possa continuar a fazer algo sensato (e que não inclua o log) em seu script, não faz sentido tentar usar On Error Resume Next para interceptar o erro.

Em vez disso, crie um novo script ASP que deve ser executado sempre que você receber um erro de script (isso incluirá um erro de tempo limite de script). No gerenciador do IIS, abra a caixa de diálogo de propriedades de seus aplicativos e selecione a guia Erros personalizados. Edite o manipulador para o erro HTTP 500;100 e altere-o para URL e o caminho desse script ASP.

Agora você pode colocar seu código de log de erros neste script ASP. Você pode acessar o erro gerado pela página ASP com falha acessando o método Server.GetLastError. Você também pode configurar esta página para enviar algo amigável ao usuário.