DetailPage-MSS-KB

Base de Dados de Conhecimento

ID do artigo: 891032 - Última revisão: quinta-feira, 24 de janeiro de 2008 - Revisão: 3.1

 
ASP .NET Support Voice Column:
para personalizar esta coluna às suas necessidades, queremos convidá-lo para enviar suas idéias sobre tópicos que interessam a você e problemas que você deseja ver abordados artigos do Knowledge Base no futuro e colunas de voz de suporte. Você pode enviar suas idéias e comentários usando o formulário Ask For It (http://support.microsoft.com/common/survey.aspx?scid=sw;en;1176&p0=&p1=&p2=&p3=&p4=) . Há também um link para o formulário na parte inferior desta coluna.

Nesta página

INTRODUÇÃO

Saudação novamente e bem-vindo a edição de novembro ' 04 da coluna de voz de suporte. Eu gostaria de agradecer a Jim Cheshire , um engenheiro de suporte aqui na Microsoft ASP.NET, de suporte para suas contribuições. Jim tem excelentes idéias para a coluna de voz de suporte e queira compartilhá-los. Procure por contribuições do Álvaro sobre próximos meses e como sempre, envie suas sugestões para colunas futuras. Jim Obrigado!

Jim tem trabalhado com a Microsoft há seis anos em equipes FrontPage, VB e ASP.NET. Durante esse tempo, ele escreveu para o Office Developer Center no MSDN e é autor de um livro no FrontPage, especial Edition usando o Microsoft Office FrontPage 2003 . Jim também tem um site onde ele fornece suplementos livres para o FrontPage permitem aos desenvolvedores da Web que o máximo de produtos da Microsoft. É aqui que endereço do site:
http://www.jimcosoftware.com (http://www.jimcosoftware.com)
Portanto, recepção até uma cadeira, disparar a de sapatos, leia nossa coluna Tudo sobre solução de problemas ASP.NET e lembre-se, você pode enviar suas idéias para nós usando o link "ASK FOR IT" incluído em cada coluna publicados.

Jeremy

Você viu o filme Shrek? A estrela do filme, Shrek, é um ogre, uma criatura feio verde com hábitos de higiene de troca horrível. No início do filme, Shrek proclaims a complexidade da ogres dizendo que “ ogres são como onions. Eles têm camadas. ”

ASP.NET é semelhante a um ogre. Ela tem muitas camadas--o cliente da Web, qualquer dispositivo intermediário como servidores proxy, a Web servidor e a rede que ele ’s e outros recursos o aplicativo toca. Todas essas camadas dificultam ASP.NET solucionar a menos que saiba qual ferramenta usar e como usar essa ferramenta corretamente.

Risco de fazer me obsoleto, desta série irá ensiná-lo como para usar algumas das ferramentas usamos no Atendimento Microsoft para resolver problemas. Vou sobre como usar algumas ferramentas realmente interessantes, como:
  • Monitor de rede
  • Fiddler
  • FileMon / Regmon
  • Ferramentas de depuração para Windows (Windbg)
  • SOS (extensão WinDBG para depurar código gerenciado)
  • DBGClr
Won’t entrarei em detalhes do uso dessas ferramentas profundo, mas eu lhe fornecerá uma base sólida sobre o uso dessas ferramentas para que você pode analisar a causa raiz de muitos problemas que podem ser encontrados.

Farejadores

A primeira parte desta série será lidar com farejadores de rede. Let’s mergulhar diretamente no.

Problema de exemplo:

você tiver um aplicativo ASP.NET que usa autenticação integrada do Windows e tem “ anônimo ” desativado. Um dos seus usuários está relatando que não são capazes de acessar o site. Em vez disso, eles são solicitados um nome de usuário e senha. Você acredita que as permissões estão corretas para esse usuário.

Esse tipo de problema é o candidato perfeito para solução de problemas usando um sniffer de rede. Um farejador permitirá que você determinar se ou não o cliente está enviando informações de autenticação para o servidor. O sniffer de rede que usamos na Microsoft é o Monitor de rede.

Monitor de rede

Você pode baixar uma versão de um tempo limite do Monitor de rede no seguinte site FTP da Microsoft:
ftp://ftp.microsoft.com/PSS/Tools/Netmon/Netmon2.zip (ftp://ftp.microsoft.com/PSS/Tools/Netmon/Netmon2.zip)
A senha neste arquivo zip é rastreamento . Após instalar o Monitor de rede, você irá encontrá-lo clicando em Ferramentas administrativas e, em seguida, clicando em Ferramentas de análise de rede .
Selecionar a interface de rede para capturar
Quando você inicia o Monitor de rede pela primeira vez, a primeira coisa que você deve fazer é selecione a placa de rede que você deseja usar na caixa de diálogo mostrada na Figura 1.
Recolher esta imagemExpandir esta imagem
Figure 1: Choosing a network in Network
		  Monitor

a Figura 1: escolher uma rede no Monitor de rede

Observe que, na Figura 1, a interface selecionada é uma conexão de dial-up ou VPN adaptador conforme indicado nas propriedades para a interface. Na maioria dos casos, você será deseja selecionar uma das interfaces diferente de dial-up ou conexão VPN. Optei por usar uma captura de tela de VPN adaptador don’t deseja escolher porque queria ver claramente como seria identificado. Uma vez, em quase todos os casos, o adaptador que você deseja escolher é aquele doesn’t aparência mostrada na figura uma 1.

Se você precisar alterar a placa de rede que você está capturando, você pode acessar a caixa de diálogo para fazer isso clicando na opção de redes no menu capturar .
Definir o tamanho do buffer
O Monitor de rede possui um buffer de captura padrão de 1 MB. Isso significa que após ele coleta 1 MB de dados de rede, ele começa a substituir o rastreamento. Em muitos casos, convém aumentar esse buffer. Para fazer isso, clique em capturar e clique em Configurações do buffer . Isso exibirá a caixa de diálogo Configurações do buffer de captura onde você pode aumentar o tamanho do buffer. Depende do tamanho que você deseja especificar no tráfego de rede quanto você está vendo na sua rede. Para um problema onde você pretende gerar os quadros que você estiver interessado em imediatamente após iniciar a captura, um buffer de 2 ou 3 MB deve ser mais do que suficientes.

Você observe que as Configurações do buffer de captura de caixa de diálogo, você também pode alterar o tamanho do quadro. Isso é útil em casos onde você deseja capturar apenas os cabeçalhos são enviados. Diminuindo o tamanho do quadro, você pode salvar algum espaço no buffer e ainda capturar os cabeçalhos que você precisa. Won’t entrarei em detalhes sobre o uso que neste artigo.
Iniciar a captura
Agora que você tem seu conjunto de buffer, ’re pronto para começar a captura de dados. Você pode iniciar a captura de diversas maneiras:
  • Pressione 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 parece um botão de reprodução).
Como capturar pacotes com o Monitor de rede, você consulte metros movendo e as estatísticas de alteração, como mostrado na Figura 2. Se você don’t ver nada acontece quando você estiver capturando, você provavelmente precisará alterar a placa de rede que está capturando.
Recolher esta imagemExpandir esta imagem
Figure 2: Network Monitor while capturing
		  packets

a Figura 2: Monitor de rede durante a captura pacotes

Depois que você iniciado captura no Monitor de rede, reproduzir o problema que você precisa capturar e parar a captura clicando no botão Parar no Monitor de rede, clicando em capturar e, em seguida, clicando em Parar , ou pressionando F11 no seu teclado. Agora você está pronto para examinar os dados que foi capturados.

Observação Monitor de rede captura somente os dados que sai pela conexão. Portanto, você geralmente não é possível capturar uma solicitação contra seu aplicativo da Web navegando no console. Em alguns casos, navegação usando seu endereço IP ou nome de domínio totalmente qualificado permitirá que você capturar no computador local.
Examinando os dados capturados
Depois que você parar a captura, você pode exibir dados capturados, clicando em capturar e, em seguida, clicando em Exibir dados capturados , ou pressionando F12 no teclado. Por padrão, você vê todos os dados que ficou pela conexão enquanto você foram capturando conforme mostrado na Figura 3.
Recolher esta imagemExpandir esta imagem
Figure 3: Captured data in Network
		  Monitor

a Figura 3: capturados dados no Monitor de rede

Nesse caso, seria vantajoso ser capaz de exibir apenas os pacotes HTTP. Que facilmente realizado filtrando os dados capturados para exibir somente o protocolo HTTP. Para filtrar os dados capturados, clique em capturar e em seguida, clique em filtro , ou pressionar F8 no seu teclado ou clique no botão da barra de ferramentas que se parece com um funil.

Na caixa de diálogo Filtro de exibição , clique duas vezes o protocolo == qualquer filtro para exibir a caixa de diálogo expressão , como mostrado na Figura 4.
Recolher esta imagemExpandir esta imagem
Figure 4: The Expression dialog box
		  provides powerful filtering capabilities

a Figura 4: caixa de diálogo expressão o fornece recursos poderosos de filtragem

Por padrão, o Monitor de rede mostra todos os protocolos. Para mostrar apenas o protocolo HTTP, clique em Desabilitar tudo , clique duas vezes o protocolo HTTP para selecioná-lo e, em seguida, clique em OK . O Monitor de rede exibirá apenas o HTTP protocolo.

Observação Você pode filtrar o Monitor de rede antes de captura para que ele captura apenas quadros que coincidam com o filtro que você definir. Na maioria dos casos, prefiro Filtrar após a captura.

Depois de filtrar os pacotes capturados para que somente o protocolo HTTP seja exibido, o Monitor de rede exibirá cada quadro dos dados capturados HTTP. Clicando em um quadro, você pode analisar informações detalhadas sobre esse pacote. No cenário de que nós lidando com, estamos tentando determinar se o cliente tenha enviado informações de autenticação para o servidor Web. A captura mostrada na Figura 5 mostra a resposta à solicitação GET para a página ASP.NET. Observe que o servidor Web respondeu novamente com um código de 401 status indicando que o acesso foi negado para a página da Web.
Recolher esta imagemExpandir esta imagem
Figure 5: Network Monitor showing an
		  “Access Denied” response when authentication is required

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

Examinando os cabeçalhos WWW-Authenticate, você pode ver na Figura 5 que o servidor Web aceita (negociar) do Kerberos e NTLM autenticação. Portanto, esperamos que o cliente enviará informações de autenticação automaticamente após a mensagem de “ acesso negado ” vemos aqui.
Números de seqüência
Para encontrar resposta ’s o cliente para o pacote mostrado na Figura 5, é necessário examinar os números seqüenciais nessa resposta. Rastreia o conceito de seqüência de números é incompreendido com freqüência em uma revisão do Monitor de rede. Eles são a chave para noções básicas sobre a ordem em que as coisas ocorreu.

No painel do meio na Figura 5, você observe que o protocolo HTTP foi expandido para revelar todos os cabeçalhos HTTP. Logo acima do HTTP protocolo é o protocolo TCP e você pode ver os números de seqüência e o número de confirmação como parte do segmento TCP. Os números de seqüência (representados por seq no pacote TCP) fornecem uma maneira para identificar o segmento TCP específico. Cada TCP seqüência deve ser acompanhada por uma confirmação ou confirmação, essa seqüência.

’S aqui um trecho do rastreamento de uma solicitação 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 
Observe que o número de seqüência final é 3410290882. Portanto, para localizar a ’s resposta servidor, você deve localizar o quadro que confirma que seqüência. Em outras palavras, você está procurando uma resposta com uma confirmação de 3410290882. É aqui que quadro:
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
esses números são importantes porque há momentos quando a resposta será exibido antes da solicitação em um rastreamento do Monitor de rede. A única maneira de ter certeza de ordem de pacotes é verificar os segmentos usando esses números.

Como estamos sobre este rastreamento para ver se o cliente está enviando informações de autenticação, podemos usar segmentos TCP para controlar as solicitações HTTP GET e a resposta do servidor. Aqui é um trecho do quadro que envia informações de autenticação do cliente:
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 isso dizer? Podemos ver que o cabeçalho de autorização é definido como "Negociar" e podemos observar uma longa seqüência de caracteres enviados nesse cabeçalho. Essa resposta nos diz que o cliente e o servidor estão negociando uma conexão com a NTLM. Sabemos que a autenticação NTLM está sendo usada aqui porque o primeiro caractere é um ' "T." Se fosse um "Y", seria Kerberos. O cabeçalho é definido como "Negociar" em vez de "NTLM". Isso não significa que ele usará Kerberos ou NTLM, mas que ele "Negociar" o método de autorização e tente Kerberos primeiro se ele é capaz de. Se ele não é possível usar Kerberos, NTLM será usado.

Figura 6 é uma captura de tela do quadro acima para que você possa ver onde as informações de autenticação são enviadas. Observe que os cabeçalhos HTTP no quadro de meio tem sido expandidos de modo que podemos ver os detalhes de cada cabeçalho.
Recolher esta imagemExpandir esta imagem
Figure 6: The
		  frame containing authentication information

a Figura 6: O quadro contendo informações de autenticação

Este quadro informa que o cliente é a maioria das informações de autenticação definitivamente envio. Se o usuário obtém acesso negado neste ponto, é ou porque o usuário não tem permissão para o recurso ou é porque as informações de autenticação está sendo alteradas em algum momento pela conexão.
Outra maneira de filtrar
Em muitos casos, você pode Solucionando um servidor que tem uma grande quantidade de tráfego. Nesses casos, você pode ver um grande número de quadros HTTP e pode ser difícil localizar os direito. Usando expressões de filtragem mais, você pode facilmente obter direita para os quadros corretos.

Clique no botão Filtrar ou pressione F8 no seu teclado, para exibir a caixa de diálogo Filtro de exibição . No lado direito, clique em expressões para adicionar uma nova expressão. Há dois filtros diferentes que deseja usar neste cenário: filtro por filtro por código de status HTTP e endereço IP.

Para filtrar por endereço IP, clique na guia propriedade e role para baixo no painel esquerdo até consulte IP . Expanda IP e role para baixo até ver o Endereço de origem . Selecione == para a relação e insira o IP endereço do computador cliente, como mostrado na Figura 7. Depois que você fizer, você verá somente quadros vêm do endereço IP digitado.
Recolher esta imagemExpandir esta imagem
Figure 7: Filtering by IP
		  Address

a Figura 7: filtragem por endereço IP

’S importante observar que muitas vezes o endereço IP pode não ser a melhor propriedade na qual filtrar um rastreamento. Muitas vezes os usuários serão atingindo um servidor Web por meio de um roteador ou um firewall. Nesses casos, o endereço IP será muitas vezes ser o endereço IP do roteador ou firewall e não no cliente.

Você também pode filtrar por código de status HTTP. Se você deseja localizar rapidamente o quadro onde um 401 é enviado ao cliente, você poderá filtrar no código de status HTTP 401. Para fazer isso, selecione HTTP na lista Protocolo: propriedade e expandi-la. Role para baixo e clique em Código de status . Selecione == para a relação, clique em decimal botão de opção (Importante), digite 401 no campo valor conforme mostrado na Figura 8 e, em seguida, clique em OK . O Monitor de rede serão exibidos somente os quadros em que um código de 401 status foi enviado, conforme mostrado na Figura 8.
Recolher esta imagemExpandir esta imagem
Figure 8: Filtering by HTTP status
		  code

a Figura 8: filtragem por código de status HTTP
Após você localizado o quadro em que o 401 foi enviada, você, em seguida, pressionar F7 no teclado para desativar o filtro. O quadro em que o 401 enviada ainda será realçado e, em seguida, você pode examinar os quadros ao redor de resposta ’s o cliente para o 401.

Fiddler – O HTTP Debugging Proxy

Se você está navegando do Internet Explorer no computador cliente que você estiver solucionando problemas, você pode usar Fiddler (mostrado na Figura 9) em vez de Monitor de rede para capturar as informações de HTTP enviadas do cliente. Fiddler captura apenas os pacotes HTTP e se integra diretamente ao Internet Explorer.
Recolher esta imagemExpandir esta imagem
Figure 9: Fiddler

a Figura 9: Fiddler

Na Figura 9, você pode ver a resposta 401 do servidor e, em seguida, você pode ver o cliente responde com um cabeçalho de Negociar (realçado). Nesse caso, um erro em tempo de execução ocorre depois que o cliente envia autenticação (que é não relacionada a esse problema), mas claramente podemos ver que o cliente fez sua parte, enviando a permissão Kerberos.

Você pode baixar Fiddler o seguinte site:
http://www.fiddlertool.com. (http://www.fiddlertool.com)

O que ’s próximo?

Usando o Monitor de rede ou o Fiddler, você pode muitas vezes eliminar o cliente como sendo um problema em falhas de autenticação. Próximo mês, vamos sobre como usar Filemon e Regmon da SysInternals. Essas ferramentas são especialmente úteis na solução de problemas de permissão no sistema de arquivos e no registro.
Como sempre, vontade enviar idéias sobre tópicos que deseja endereçada em colunas futuras ou na Base de dados de Conhecimento usando o formulário Ask For It (http://support.microsoft.com/common/survey.aspx?scid=sw;en;1176&p0=&p1=&p2=&p3=&p4=) .

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áticaTraduçã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 traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 891032  (http://support.microsoft.com/kb/891032/en-us/ )
Compartilhar
Opções de suporte adicionais
Fóruns de Suporte do Microsoft Community
Contate-nos diretamente
Localize um parceiro certificado da Microsoft
Microsoft Store