Recomendado: Use ASP para construir um mecanismo de pesquisa privado Muitos entusiastas da Internet acumulam seus cérebros para tornar as funções de seu site mais abrangentes ao criar sua própria página inicial pessoal. Aqui, o autor apresenta um método para usar o ASP para construir seu próprio mecanismo de pesquisa. A idéia básica é usar os formulários para armazenar palavras -chave de pesquisa enviadas pelos usuários em variáveis.
7.5.1 Tecnologia geral de depuraçãoNo capítulo 2, você viu como usar o método da resposta.Write e a coleção de solicitações para exibir o conteúdo da coleção. Se o código quiser usar o valor da solicitação, a primeira coisa a fazer é garantir que o valor necessário exista. O problema fácil é que o nome de controle HTML na página <form> da web é incorreto ou alterado, ou o cliente errado aparece ao criar uma sequência de consulta conectada ao URL.
1. Exiba vários conteúdos de coleção
Quando o programa tenta executar com o valor fornecido pelo usuário, pode não obter o resultado desejado ou nada é obtido. Lembre -se de que o uso de request.form (thisControl) não causa um erro ao fazer referência a um valor que não existe em uma coleção de objetos de solicitação (por exemplo, se você não tiver um controle chamado esse controle no formulário. O resultado pode obter apenas uma string vazia. Isso também pode acontecer se você espera encontrar um valor armazenado no objeto de sessão do usuário ou no objeto global.
Se você criar uma página para exibir o conteúdo de todas as coleções de objetos de solicitação, o conteúdo dos objetos de sessão e do aplicativo e as coleções StaticContens, você poderá acessá -las usando o Server.execute. O trabalho precisa ser feito é adicionar a seguinte linha de programa à página da Web ASP para exibir todo o conteúdo da coleção. Obviamente, de acordo com o local em que o arquivo é armazenado no servidor, o caminho correspondente deve ser definido para o arquivo.
< % Server.execute /path_to_file/debug_request.asp %>
Essa é uma ótima maneira de garantir que qualquer valor que queira encontrar na solicitação, sessão e coleções de aplicativos existam e contenham o valor apropriado. Um arquivo correspondente é fornecido no arquivo de amostra Capítulo07 Subdiretório deste livro, chamado debug_request.asp. É basicamente uma combinação da página da web show_request.asp para o capítulo 2 e o show_application.asp e show_session.asp Páginas da web para o capítulo 3, mas remove algum código do programa HTML. Simplesmente itera a coleção e coloca os valores na página atual.
Esta página pode ser visualizada executando a instância da página de erro personalizada. Este exemplo foi visto anteriormente neste capítulo. Ao abri -lo, selecione a caixa de seleção Display Debugging Information ou abra diretamente na página da web do menu principal no diretório Capítulo07.
2. Mostrar valores intermediários
A segunda maneira de visualizar a situação em execução em uma página da web é exibir o valor da variável quando a página da web é executada. Essa tecnologia tradicional não pode ser descartada quando você sabe de onde vem o erro e qual variável está funcionando. No entanto, devido às alterações no método de buffer da Web do IIS 5.0, é difícil usar essa tecnologia.
Nas versões anteriores do ASP e do IIS, o buffer de página foi desligado por padrão, e quase ninguém pensou em ativar o buffer (aberto com a resposta.buffer = true), a menos que quisessem usar a resposta.Redirect para concluir o redirecionamento da página da web (consulte o Capítulo 2). Ao responder a várias solicitações, o buffer reduz o número de alternativas entre as páginas da web, melhorando assim a eficiência do IIS.
No entanto, quando ocorre um erro de tempo de execução que interrompe a execução, o IIS chama automaticamente o método da resposta.Clear e depois chama o Server.Execute para carregar a página de erro personalizada, para que qualquer saída gravada na página da web seja perdida. A solução é adicionar temporariamente a seguinte linha do programa:
< % Response.Buffer = False %>
Esta linha de programa é colocada na parte superior da página após a diretiva <@Language ...>, e qualquer saída de depuração gerada pela declaração Response.Write aparecerá na parte superior da página de erro personalizada. Lembre -se de removê -lo depois de terminar a depuração da página da web.
Às vezes, esse método é útil para forçar o programa a ser executado através de um ponto de erro e, em seguida, exibir valores variáveis suspeitos. Basta adicionar o erro ON ERRO a próxima instrução perto do início da página da web e, em seguida, você pode acessar o objeto Err (no VBScript) e exibir o número de erro, a fonte de erro e a descrição.
3. Verifique os valores dos atributos do componente
Se o componente utilizado tiver propriedades definidas no código de script ASP, após a conclusão da configuração e antes e depois que o método do componente for chamado, o erro poderá ser rastreado exibindo todas as propriedades (ou apenas propriedades suspeitas). Quando um método é executado, pode -se descobrir que o valor da propriedade foi alterado acidentalmente pelo componente, talvez intencional ou por causa de um defeito no componente. Não faça suposições sem verificar você mesmo o código real.
7.5.2 Microsoft Script Debugger
Ao desenvolver aplicativos mais complexos que lidam com tarefas reais, é necessária uma ferramenta mais poderosa para a depuração. O Microsoft Script Debugger é uma ferramenta de depuração que permite que os scripts de depuração sejam executados em clientes e servidores. Ele pode ser usado para qualquer linguagem de script ativada no ActiveX (incluindo VBScript e JScript) e também pode ser usada para depurar chamadas para Java Applets, Java Beans e Components ActiveX.
Antes de estudar essa ferramenta, explique brevemente alguns problemas. Como mencionado anteriormente, um aplicativo ASP consiste em dois tipos de scripts, um é um script do cliente e o outro é um script do servidor. Os scripts do cliente geralmente são compostos de declarações de script VBScript ou JScript que aparecem na página HTML quando chegam ao cliente e são executadas lá, possivelmente quando o documento é carregado ou em resposta a alguns eventos. Os scripts do lado do servidor geralmente também são compostos de instruções VBScript ou JScript. Quando o navegador solicita uma página da web, o script do lado do servidor é executado pelo IIS. Na discussão a seguir, o método de depuração de scripts do lado do servidor será discutido. No entanto, muitas das técnicas discutidas também podem ser usadas para a depuração do script do cliente.
1. Depuração do lado do servidor
Para depurar scripts do lado do servidor, execute o depurador de script em um computador em execução do IIS; no entanto, a depuração deve ser ativada antes de usar o depurador do script. Para otimizar o desempenho, os aplicativos baseados em ASP desativam a depuração por padrão.
Cuidado para não ativar a depuração de aplicativos produtivos (ou seja, sites públicos que são ativos e usados por outros). Isso desacelerará todo o aplicativo e os erros podem fazer com que a página da web pare de executar indeterminadamente.
A depuração só pode ser definida para aplicativos virtuais e todo o site. Para ativar a depuração, abra a caixa de diálogo Propriedades do aplicativo ou site, na guia Diretório da casa, clique no botão Configuração, na guia de depuração do aplicativo da caixa de diálogo Configuração do aplicativo, selecione Ativar Debugger de scripts do lado do servidor ASP e prepare-se para depurar nosso aplicativo abaixo.
Nota A caixa de diálogo Configuração do aplicativo contém uma caixa de seleção que permite a depuração do script do cliente. Isso não é implementado no IIS 5.0 e é marcado apenas como reservado para uso futuro na documentação. Se a página de erro personalizada de 500-100-100.
(1) Scripts de processamento de servidores
Ao contrário dos scripts do cliente, os scripts de aplicativos baseados em ASP não são orientados a eventos. Quando o cliente solicita uma página da Web do servidor, o servidor lê o conteúdo da página da web e processa todos os scripts do servidor (ou seja, tudo nos segmentos <%...%> e <script runat = server> </sCript>), bem como o conteúdo do segmento de script embriagado no texto HTML, como:
A válvula do resultado é: < % = strresult %>
Diagrama de caixa de exibição de fluxo de processo
Quando o IIS carregar uma página da web, todos os scripts na página ASP serão processados. Antes de qualquer saída ser enviada ao cliente, o mecanismo ASP e Script pode capturar erros de sintaxe e tempo de execução (a menos que você desative o buffer ou ligue para o método Response.flush).
(2) Ajuda fornecida pelo depurador do script
Ao ativar a depuração do script, se ocorrer um erro, você poderá ver uma caixa de diálogo descrevendo o erro do código ASP na tela do servidor. Clique em OK e depois ligue para uma cópia somente leitura da página Web ASP atual. O depurador do script está aberto. A linha que aparece no erro é indicada pela seta.
Aqui, o erro ocorre devido ao erro de nome do método do objeto contador de página, que deve ser PageHit em vez de dopageHit. Ao mesmo tempo, o depurador do script encontrou um erro e encerrou a execução da página. Os botões na barra de ferramentas são usados para continuar o programa, o programa em uma etapa em execução ou encerrar a execução da página.
O botão à direita da barra de ferramentas abre a janela imediata no depurador do script, que pode ser usado para interagir com a página, e é muito provável que encontre um local onde o erro ocorra. Por exemplo, valores variáveis ou propriedades de componentes podem ser consultados ou definidos, funções e sub -rotinas internas, funções e sub -rotinas personalizadas e métodos de objeto que foram criados etc. podem ser executados. Na figura, o método PageHit do componente do contador de páginas é chamado e a propriedade HITS é então consultada para obter o valor nesse ponto no script em execução.
Para entender por que os depuradores de scripts não devem ser usados em sites públicos, você pode abrir uma página contendo erros do lado do servidor do cliente. Nesse caso, a caixa de diálogo da mensagem de erro aparece no servidor e o depurador do script também é aberto no servidor. No cliente, a página não é carregada até que o depurador do script em execução no servidor esteja fechado.
(3) Iniciar e usar o depurador
Depois de ativar a depuração do script, o depurador do script ocorrerá automaticamente quando ocorrer um erro na página da web do aplicativo virtual.
Compartilhar: ASP Exemplo: Produção de jogos de cooperação de palavras Este é um jogo sobre codificação de palavras, escrito em ASP, VBScript e JavaScript. Não foram encontrados grandes problemas em teste sob Win98 OEM2, PWS e IE5. Método de uso: Método 1: Por exemplo, o diretório do seu serviço 3W é C: inetpubwwwroot.