Resolução de problemas do ASP.NET

Traduções de Artigos Traduções de Artigos
Artigo: 891032 - Ver produtos para os quais este artigo se aplica.
ASP .NET coluna de voz de suporte: Resolução de problemas ASP.NET
para personalizar esta coluna às suas necessidades, pretendemos convidá-lo para submeter as suas ideias sobre tópicos que lhe interessam e problemas que pretende ver endereçados artigos de base de dados de conhecimento no futuro e colunas de voz de suporte. Pode submeter as ideias e comentários utilizando o formulário Ask For It. Também há uma hiperligação para o formulário na parte inferior desta coluna.
Expandir tudo | Reduzir tudo

Nesta página

INTRODUÇÃO

"Hello" novamente e de boas-vindas para a edição de Novembro ' 04 da coluna de voz de suporte. Gostaria de agradecer Cheshire Jaime , um engenheiro de suporte aqui no Microsoft ASP.NET, de suporte para as suas contribuições. Jaime tem grandes ideias para a coluna voz de suporte e pretende partilhá-los. Procure contribuições do Jaime seguinte alguns meses e, como sempre, envie-nas sugestões para colunas futuras. Jaime Obrigado!

Jaime tem estado a trabalhar com o Microsoft seis anos em equipas do FrontPage, VB e ASP.NET. Durante esse período, ele foi escrito para o Office Developer Center na MSDN e ele é o autor de um livro no FrontPage, Special Edition utilizando o Microsoft Office FrontPage 2003 . Jaime também tem um Web site onde ele fornece livres suplementos para o FrontPage permitem aos programadores Web tornar o máximo partido dos produtos Microsoft. Segue-se esse endereço de Web site:
http://www.jimcosoftware.com
Pelo que pedimos solicitação até uma cadeira, kick os sapatos, leia a nossa coluna tudo sobre resolução de problemas de ASP.NET e lembre-se, pode submeter as ideias-nos utilizando a hiperligação "ASK FOR TI" incluída no cada coluna que publicar.

Jeremy

Resolução de problemas do ASP.NET

Viu o filme Shrek? A estrela do filme, Shrek, é um ogre, um terríveis creature verde com hábitos de Higiene awful. No início do filme, Shrek proclaims a complexidade da ogres dizendo que ? ogres são como onions. Têm camadas. ?

ASP.NET é muito semelhante a um ogre. Tem várias camadas--o cliente Web, qualquer dispositivo intermediário como servidores proxy, a Web servidor e a rede que ?s e toca a aplicação de outros recursos. Todas as camadas dificultar ASP.NET para resolução de problemas se souber qual a ferramenta a utilizar e como utilizar correctamente essa ferramenta.

Em risk de efectuar manualmente obsoleto, esta série vai ensinar-lhe como utilizar algumas das ferramentas são utilizadas no suporte técnico da Microsoft para resolver problemas. Ultrapasse a utiliza algumas ferramentas realmente interessantes, tais como:
  • Monitor de rede
  • Fiddler
  • FileMon / RegMon
  • Ferramentas de depuração para o Windows (WinDbg)
  • SOS (uma extensão WinDbg para depurar código gerido)
  • DBGClr
Won?t Ir para os detalhes numa utilizando estas ferramentas, mas fornecerá uma fundação sólida sobre como utilizar estas ferramentas para que pode pormenorizar para a causa de muitos problemas que poderão ocorrer.

Descodificadores (sniffers)

A primeira parte desta série irá lidar com descodificadores de rede. Let?s mergulhar para a direita no.

Problema de exemplo:

tem uma aplicação do ASP.NET que utiliza a autenticação integrada do Windows e tem ? anónimo ? desactivada. Um dos seus utilizadores está a comunicar que estes não são possível aceder ao site. Em vez disso, estas são solicitadas um nome de utilizador e palavra-passe. Pensa que as permissões estão correctas para este utilizador.

Este tipo de problema é o candidato ideal para resolução de problemas utilizando um sniffer de rede. Um sniffer permitirá determinar se o cliente está a enviar informações de autenticação para o servidor. O sniffer de rede que utilizamos no Microsoft é o Monitor de rede.

Monitor de rede

Pode transferir uma versão bombed time Monitor de rede a partir do seguinte site de FTP da Microsoft:
ftp://ftp.microsoft.com/PSS/Tools/Netmon/Netmon2.zip
A palavra-passe neste ficheiro zip é rastreio . Depois de instalar o Monitor de rede, irá encontrá-la clicando em Ferramentas administrativas e, em seguida, clicando em Ferramentas de análise de rede .
Seleccionar a interface de rede para capturar
Quando inicia o Monitor de rede pela primeira vez, a primeira coisa que terá de efectuar é seleccione a placa de rede que pretende utilizar na caixa de diálogo mostrada na figura 1.
Reduzir esta imagemExpandir esta imagem
Figure 1: Choosing a network in Network
		  Monitor

Figura 1: seleccionar uma rede no Monitor de rede

Note que na figura 1, a interface seleccionada é uma ligação de acesso telefónico ou uma placa VPN conforme indicado nas propriedades para a interface. Na maioria dos casos, poderá seleccionar uma das interfaces do que o acesso telefónico ou ligação VPN. Optar por utilizar uma imagem de ecrã de VPN placa don?t pretende escolher uma vez que pretendia ver claramente como seria possível identificar. Mais uma vez em quase todos os casos, a placa que pretende escolher é aquele que doesn?t aspecto uma figura 1 apresentados no.

Se necessitar de alterar a placa de rede que está a capturar, pode aceder a caixa de diálogo para fazê-lo clicando na opção de redes no menu Capturar .
Definir o tamanho da memória intermédia
O Monitor de rede tem uma memória intermédia da captura predefinido de 1 MB. Isto significa que depois de recolhidas 1 MB de dados de rede, é iniciado substituir o rastreio. Em muitos casos, poderá aumentar essa memória intermédia. Para tal, clique em Capturar e clique em Definições de memória intermédia . Isto apresenta a caixa de diálogo Definições de memória intermédia de captura de onde pode aumentar o tamanho da memória intermédia. O tamanho que pretende especificar depende no quanto tráfego de rede está a ver na rede. Para um problema em que pretende gerar os pacotes que lhe interessam imediatamente após iniciar a captura, uma memória intermédia 2 ou 3 MB deverá ser mais suficiente.

Repare que as Definições de memória intermédia de captura de caixa de diálogo, também pode alterar o tamanho da moldura. Isto é útil nos casos em que pretende capturar apenas os cabeçalhos são enviados. Diminuindo o tamanho da moldura, pode poupar algum espaço na memória intermédia e ainda capturar os cabeçalhos que terá. Won?t entram no detalhes sobre a utilização que neste artigo.
Iniciar a captura
Agora que tem o conjunto de memória intermédia, ?re pronto para iniciar a captura de dados. É possível iniciar a captura de várias formas diferentes:
  • Prima F10 no teclado.
  • Clique em Capturar e, em seguida, clique em Iniciar a partir do menu.
  • Clique no botão Iniciar captura na barra de ferramentas (este botão assemelha-se um botão de reprodução).
Como capturar pacotes com o Monitor de rede, consulte metros mover e as estatísticas de alterar, conforme mostrado na figura 2. Se don?t vir algo acontecer quando estiver a capturar, provavelmente terá de alterar a placa de rede que está a capturar.
Reduzir esta imagemExpandir esta imagem
Figure 2: Network Monitor while capturing
		  packets

Figura 2: Monitor de rede durante a captura pacotes

Depois de iniciado captura no Monitor de rede, reproduzir o problema, terá de capturar e, em seguida, parar a captura clicando no botão Parar no Monitor de rede, clicando em Capturar e, em seguida, clicando em Parar , ou premindo F11 no teclado. Está preparado examinar os dados que foi capturados.

Nota O Monitor de rede captura apenas dados que vai através de fios. Por conseguinte, é normalmente não é possível capturar um pedido contra seu aplicativo da Web procurando na consola. Em alguns casos, procura utilizando o endereço IP ou nome de domínio totalmente qualificado permitirá capturar no computador local.
Examinar dados capturados
Depois de parar a captura, pode ver os dados capturados clicando em Capturar e, em seguida, clicando em Dados capturados apresentar ou premindo F12 no teclado. Por predefinição, verá todos os dados ficou através da enquanto foram captura tal como mostrado na figura 3.
Reduzir esta imagemExpandir esta imagem
Figure 3: Captured data in Network
		  Monitor

Figura 3: captura de dados no Monitor de rede

Neste caso, seria útil conseguir ver apenas os pacotes HTTP. Que facilmente conseguido filtrando os dados capturados a apresentar apenas o protocolo HTTP. Para filtrar os dados capturados, clique em Capturar e, em seguida, clique em filtro , ou prima F8 no teclado ou clique no botão de barra de ferramentas que parece um funil.

Na caixa de diálogo Filtro de visualização , faça duplo clique no protocolo == qualquer filtro para apresentar a caixa de diálogo expressão , tal como mostrado na Figura 4.
Reduzir esta imagemExpandir esta imagem
Figure 4: The Expression dialog box
		  provides powerful filtering capabilities

Figura 4: caixa de diálogo a expressão fornece poderosas capacidades de filtragem

Por predefinição, o Monitor de rede mostra todos os protocolos. Para mostrar apenas o protocolo HTTP, clique em Desactivar todos , clique duas vezes o protocolo HTTP para o seleccionar e, em seguida, clique em OK . O Monitor de rede mostrará apenas o HTTP protocolo.

Nota Pode filtrar o Monitor de rede antes de capturar isso-captura apenas pacotes que correspondam ao filtro que definiu. Na maioria dos casos, prefiro Filtrar depois da captura.

Depois de filtrar os pacotes capturados, para que seja apresentado apenas o protocolo HTTP, o Monitor de rede apresentará cada pacote dos dados capturados HTTP. Fazendo uma moldura, pode rever informações detalhadas sobre desse pacote. No cenário que é lidar com, está a tentar determinar se o cliente tem enviadas quaisquer informações de autenticação para o servidor da Web. A captura mostrada na Figura 5 mostra a resposta do pedido GET para a página ASP.NET. Repare que o servidor Web tiver respondido novamente com um código de 401 estado indicando que foi negado o acesso à página Web.
Reduzir esta imagemExpandir esta imagem
Figure 5: Network Monitor showing an
		  ?Access Denied? response when authentication is required

Figura 5: Monitor de rede mostrando uma resposta ? acesso negado ? quando é necessária autenticação

Ao observar os cabeçalhos WWW-Authenticate, pode ver na Figura 5 que o servidor da Web aceita (negociar) do Kerberos e NTLM autenticação. Por conseguinte, esperamos que o cliente enviará informações de autenticação automaticamente após a mensagem ? acesso negado ? podemos ver aqui.
Números de sequência
Para encontrar resposta ?s cliente para o pacote mostrado na Figura 5, é necessário observe os números de sequência nesta resposta. Rastreia o conceito de sequência de números frequentemente mal interpretados de uma revisão do Monitor de rede. São a chave para compreender a ordem na qual ocorreram coisas.

O painel do meio na Figura 5, notará que o protocolo HTTP foi expandido para revelar todos os cabeçalhos HTTP. Por cima do HTTP protocolo é o protocolo TCP e pode ver os números de sequência e o número de confirmação como parte do segmento TCP. Os números de sequência (representados pela seq no pacote de TCP) fornecem uma forma para identificar o segmento TCP específico. Cada TCP sequência deve ser acompanhada por uma confirmação ou confirmação, essa sequência.

Aqui ?s um fragmento de rastreio de um pedido HTTP GET:
11 4294967263.4294633595 LOCAL 00045A420DBC HTTP GET Request 
(from client using port 3134) DADATOP 192.168.0.4 IP 
TCP: .AP..., len: 402, seq:3410290480-3410290882, ack:1947093623, win:17520, src: 3134 dst:  80 
Note que o número de sequência final é 3410290882. Assim, para encontrar resposta ?s servidor, deve localizar o pacote confirma que sequência. Por outras palavras, que está a procurar uma resposta com uma confirmação de 3410290882. Segue-se nessa frame:
12 4294967263.4294636605 00045A420DBC LOCAL HTTP Response (to client using port 3134) 192.168.0.4 DADATOP IP 
TCP: .A...., len: 1460, seq:1947093623-1947095083, ack:3410290882, win:65133, src:  80 dst: 3134
estes números são importantes porque há alturas aparece quando a resposta antes do pedido num rastreio do Monitor de rede. A única forma que tenha a certeza da ordem dos pacotes consiste em verificar os segmentos utilizando estes números.

Uma vez que são olhar para este rastreio para verificar se o cliente está a enviar informações de autenticação, é possível utilizar os segmentos TCP para controlar os pedidos GET de HTTP e a resposta do servidor. Aqui está um fragmento de pacote que envia informações de autenticação do cliente: 00045A420DBC LOCAL
23 4294967263.4294641621 LOCAL 00045A420DBC HTTP GET Request (from client using port 3135) 192.168.0.2 192.168.0.4 IP 
HTTP: GET Request (from client using port 3135)
  HTTP: Request Method = GET
  HTTP: Uniform Resource Identifier = /webapplication1/webform1.aspx
  HTTP: Protocol Version = HTTP/1.1
  HTTP: Accept = image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.
  HTTP: Accept-Language = en-us
  HTTP: Accept-Encoding = gzip, deflate
  HTTP: User-Agent = Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 
  HTTP: Host = alien
  HTTP: Connection = Keep-Alive
  HTTP: Authorization = Negotiate TlRMTVNTUAABAAAAB4IIogAAAAAAAAAAAAAAAAAAAAAFASgKAAAA
44 77 3D 3D 0D 0A 0D 0A         AAADw==....   
O que este indique? Poderá constatar que o cabeçalho de autorização é "Negotiate" e podemos ver uma cadeia longa de caracteres enviados nesse cabeçalho. Esta resposta diz-nos que o cliente e o servidor são negociar uma ligação de NTLM. Sabemos que a autenticação NTLM está a ser utilizada aqui porque o primeiro carácter é um ' "T." Se fosse um "Y", seria Kerberos. O cabeçalho é definido como "Negotiate" em vez de "NTLM". Isto não significa irá utilizar Kerberos ou NTLM, mas que será "Negotiate" o método de autorização e tentar primeiro Kerberos se for possível. Se não é possível utilizar Kerberos, irá utilizar NTLM.

Figura 6 é uma captura de ecrã da moldura acima, para que possa ver onde as informações de autenticação são enviadas. Tenha em atenção que os cabeçalhos HTTP na moldura de meio tem sido expandidos para que a Microsoft possa ver os detalhes de cada cabeçalho de.
Reduzir esta imagemExpandir esta imagem
Figure 6: The
		  frame containing authentication information

Figura 6: A moldura que contém informações de autenticação

Esta moldura indica-nos que o cliente está a maior parte das informações de autenticação definitivamente envio. Se o utilizador é negado acesso nesta altura, é ou porque o utilizador não tem permissão para o recurso ou é porque as informações de autenticação está a ser alteradas em algum momento através da.
Outra forma de filtro
Resolução de problemas em muitos casos, pode ser com um servidor que tem uma grande quantidade de tráfego. Nesses casos, poderá ver um grande número de pacotes HTTP e poderá ser difícil localizar os para a direita. Utilizando expressões de filtro mais, pode facilmente obter direita para os pacotes correctos.

Clique no botão filtrar ou prima F8 no teclado, para abrir a caixa de diálogo Filtro de visualização . No lado direito, clique em expressão para adicionar uma nova expressão. Existem dois filtros diferentes que convém utilizar neste cenário: filtrar por endereço IP e filtra por código de status do HTTP.

Para filtrar por endereço IP, clique no separador Propriedades e desloque no painel da esquerda até consulte IP . Expanda IP e desloque a listagem para baixo até ver o Endereço de origem . Seleccione == para a relação e introduza o endereço IP endereço do computador cliente tal como mostrado na Figura 7. Após efectuar este passo, verá apenas pacotes provenientes o endereço IP que introduziu.
Reduzir esta imagemExpandir esta imagem
Figure 7: Filtering by IP
		  Address

Figura 7: filtragem por endereço IP

?S importante salientar que muitas vezes o endereço IP pode não ser a melhor propriedade na qual pretende filtrar um rastreio. Oftentimes irão atingindo um servidor Web através de um router ou um firewall a utilizadores. Nesses casos, o endereço IP irá frequentemente ser o endereço IP do router ou firewall e não o cliente.

Também pode filtrar por código de status do HTTP. Se gostar localizar rapidamente a frame em que um 401 é enviada para o cliente, pode filtrar no código de estado de HTTP 401. Para isso, seleccione HTTP na lista de Protocolo: propriedades e expandi-lo. Desloque-se para baixo e, em seguida, clique em Código de estado . Seleccione == para relação, clique em decimal botão de opção (Importante), introduza 401 no campo valor , tal como mostrado na figura 8 e, em seguida, clique em OK . O Monitor de rede irá visualizar apenas os pacotes em que foi enviado um código de 401 estado, tal como mostrado na figura 8.
Reduzir esta imagemExpandir esta imagem
Figure 8: Filtering by HTTP status
		  code

Figura 8: filtrar, código de status do HTTP
Depois de localizado a moldura onde o 401 foi enviada, pode em seguida, premir F7 no teclado para desactivar o filtro. A frame em que foi enviado o 401 ainda vai ser realçada e, em seguida, pode examinar os pacotes adjacentes para resposta ?s cliente para o 401.

Fiddler ? A depuração de proxy HTTP

Se está a navegar a partir do Internet Explorer no computador cliente que estiver a efectuar a resolução, pode utilizar Fiddler (mostrado na Figura 9) em vez do Monitor de rede para capturar as informações de HTTP enviadas do cliente. Fiddler captura pacotes de HTTP e integra directamente no Internet Explorer.
Reduzir esta imagemExpandir esta imagem
Figure 9: Fiddler

Figura 9: Fiddler

Na Figura 9, pode ver a resposta 401 do servidor e, em seguida, pode ver o cliente responder com um cabeçalho de Negociar (realçado). Neste caso, um erro de tempo de execução ocorre depois do cliente envia autenticação (que é não relacionada a este problema), mas claramente poderá constatar que o cliente foi a parte enviando o Kerberos.

Pode transferir Fiddler a partir do seguinte Web site:
http://www.fiddlertool.com.

O que ?s seguinte?

Utilizar o Monitor de rede ou Fiddler, poderá frequentemente excluir o cliente como sendo um problema em falhas de autenticação. Próximo mês, é vá sobre como utilizar o FileMon e Regmon de SysInternals. Estas ferramentas são especialmente úteis na resolução de problemas permissão no sistema de ficheiros e no registo.
Como sempre, vontade submeter ideias sobre os tópicos que pretende referidas nas colunas futuras ou na base de dados de conhecimento utilizando o formulário Ask For It.

Propriedades

Artigo: 891032 - Última revisão: 24 de janeiro de 2008 - Revisão: 3.1
A informação contida neste artigo aplica-se a:
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 1.1
Palavras-chave: 
kbmt kbhowto kbasp KB891032 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine translation ou MT), não tendo sido portanto revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 891032

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com