Capture e salve o código de função para erros de execução de ASP. Amigos que precisam obter erros de execução de código asp podem consultar o nome do processo: catch(str)
Como usar:
Copie o código do código da seguinte forma:
em caso de erro, retome a seguir
'Seu código, como conexão de banco de dados
call catch (mensagem de prompt exibida ao usuário)
Função: Limpe a mensagem de erro do IIS, personalize a mensagem de erro e devolva-a ao usuário, e salve a mensagem de erro em um arquivo txt (é claro que você também pode fazer pequenas modificações para redirecionar para uma página personalizada, etc.)
Código:
Copie o código do código da seguinte forma:
<%
opção explícita
'Exemplo 1--------------------------
'Deve ser usado junto com o próximo retorno do erro, mas é melhor comentá-lo antes que a página da web seja lançada oficialmente, para não ver os detalhes do erro durante a depuração
em caso de erro, retome a seguir
'i não está definido e ocorrerá um erro Use catch para limpar o erro e salvá-lo no Bloco de Notas.
eu
call catch(a página não pode ser acessada)
'---------------------------------
'Exemplo 2------------------------------------------
funçãoconn()
'Deve ser usado junto com o próximo erro no currículo
em caso de erro, retome a seguir
'.........seu código para conectar ao banco de dados
call catch (erro de abertura do banco de dados)
função final
'---------------------------------
sub captura (str)
se err.número <> 0 então
escurecer tmp, caminho
'O caminho absoluto do log de erros, como /error_log.txt
caminho = /tabela/error_log.txt
tmp = tmp & página de erro: & geturl & vbcrlf
tmp = tmp & hora do erro: & now() & vbcrlf
tmp = tmp & IP de visita: & ip & vbcrlf
tmp = tmp & mensagem de prompt: & str & vbcrlf
tmp = tmp & código de erro: & err.number & vbcrlf
tmp = tmp & mensagem de erro: & err.description & vbcrlf
tmp = tmp & aplicação: & err.source & vbcrlf & vbcrlf & vbcrlf
tmp = tmp & arquivo_read(caminho)
chame file_save(tmp,caminho,1)
err.claro()
morrer (str)
terminar se
final sub
'A seguir estão as funções usadas por catch --------------------
subeco(str)
resposta.write(str)
final sub
subdie(str)
echo (str): resposta.end()
final sub
funçãoip()
ip = request.servervariables(remote_addr)
função final
'Obtém a URL atual
função geturl()
escurecer tmp
se lcase(request.servervariables(https)) = off então
tmp = http://
outro
tmp=https://
terminar se
tmp = tmp & request.servervariables(nome_do_servidor)
se request.servervariables(server_port) <> 80 então
tmp = tmp &: & request.servervariables(server_port)
terminar se
tmp = tmp & request.servervariables(url)
se trim(request.querystring) <> então
tmp = tmp & ? & trim(request.queryString)
terminar se
geturl=tmp
função final
'Função: lê o conteúdo do arquivo em string
função arquivo_read(caminho)
dim tmp : tmp = falso
se não file_exists(caminho) então file_read = tmp: função de saída
fluxo escuro: definir fluxo = server.CreateObject (ADODB.Stream)
com fluxo
.type = 2 'Tipo de texto
.mode = 3 'Modo de leitura e gravação
.charset=gb2312
.abrir
.loadfromfile(servidor.MapPath(caminho))
tmp = .readtext()
terminar com
stream.close: definir stream = nada
arquivo_leitura=tmp
função final
'Função: salvar string em arquivo
função file_save(str,caminho,modelo)
se modelo<>0 e modelo<>1 então modelo=1
se model = 0 e file_exists (path) então file_save = true: função de saída
fluxo escuro: definir fluxo = server.CreateObject (ADODB.Stream)
com fluxo
.type = 2 'Tipo de texto
.charset=gb2312
.abrir
.writetextstr
.savetofile(servidor.MapPath(caminho)),modelo+1
terminar com
stream.close: definir stream = nada
arquivo_save = arquivo_existe(caminho)
função final
'Função: detectar se o arquivo/pasta existe
função arquivo_existe(caminho)
dim tmp : tmp = falso
dim fso: definir fso = server.CreateObject (Scripting.FilesyStemObject)
se fso.fileexists(server.MapPath(path)) então tmp = true
se fso.folderexists(server.MapPath(path)) então tmp = true
definir fso = nada
arquivo_existe=tmp
função final
%>