Устранение неполадок, связанных с ASP.NET

Переводы статьи Переводы статьи
Код статьи: 891032 - Vizualiza?i produsele pentru care se aplic? acest articol.
Столбец ASP .NET поддержка голосовой связи: Устранение неполадок ASP.NET
Чтобы настроить этот столбец, по необходимости, мы хотим пригласить вас отправлять свои идеи по темам, интересующих и проблемы, которые вы хотите видеть в будущем направлено статей и столбцов, поддержка голосовой связи. Вы можете отправить свои идеи и с помощью обратной связиДля этого попроситеФорма:. Также является ссылкой на форму в нижней части этой статьи.
Развернуть все | Свернуть все

В этой статье

Введение эта ссылка может указывать на содержимое полностью или частично на английском языке

Снова приветствия и Добро пожаловать выпуск ноябрь ' 04 за технической поддержки. Я хотел бы поблагодаритьДжим Cheshire, специалист службы поддержки здесь корпорации Майкрософт, поддерживающих ASP .NET для своего сообщения. Джим имеет Великие идеи для столбца, поддержка передачи голоса и для их совместного использования. Поиск таблицы с сообщения через ближайшие несколько месяцев и как всегда, присылайте нам ваши предложения о будущих столбцов. Джим Спасибо!

Джим работал в корпорации Майкрософт в течение шести лет в рабочих групп Microsoft FrontPage, VB и ASP .NET. В это время он для Центр разработчика Office в сети MSDN и он является автором книги в Microsoft FrontPageСпециальный выпуск, с помощью Microsoft Office FrontPage 2003. Джим также имеет веб-узел, где он предоставляет бесплатные надстроек для FrontPage для включения веб-разработчиков сделать из продуктов корпорации Майкрософт. Вот этот адрес веб-узла.
http://www.jimcosoftware.com
Так что произведите по запросу кресло, запустить обувь и прочитать рубрики все об устранении неполадок с ASP.NET и следует помнить, что вы можете отправить ваши идеи для нас с помощью ссылки «ASK FOR ИТ», в каждом столбце мы публикации.

Джереми

Устранение неполадок, связанных с ASP.NET

Вы видели фильм Shrek? Звезда фильма, Shrek, является ogre неприятную зеленый creature с awful санации привычки. В начале фильма Shrek proclaims сложности людоедов, о том, что “ людоедов подобны onions. Они имеют слоев. ”

ASP.NET значительно напоминает ogre. Он имеет несколько уровней — веб-клиент, любое промежуточное устройство, как прокси-серверы, веб-узла сервера и сети, он включен, что касается всех других ресурсов приложения. Все эти слои затруднить ASP.NET для устранения неполадок, если вы знаете, какой инструмент использовать и как правильно использовать это средство.

За риск того, что себя устаревшие, этой серии будет научить, как использование некоторых средств, мы используем в службу технической поддержки для устранения неполадок. Будет перейти на том, как использовать некоторые очень мощные средства, такие как:
  • Сетевой монитор
  • Fiddler
  • Filemon и Regmon
  • Средства отладки для Windows (Windbg)
  • SOS (расширение WinDBG для отладки управляемого кода)
  • DBGClr
Я не переходит в тесной сведения об использовании этих средств, но я обеспечат надежную основу по использованию этих средств, может перейти в корневой причиной многих проблем, которые могут возникнуть.

Средствами прослушивания

В первой части этой серии будет работать с сетевыми средствами прослушивания. Право Let’s углубиться в.

Пример проблемы:

Приложение ASP.NET, использующего проверку подлинности, встроенная в Windows и “ анонимных ” отключена. Один из пользователей сообщает, что они не могут получить доступ к веб-узла. Вместо этого они неоднократно предлагается ввести имя пользователя и пароль. Вы считаете, что разрешения заданы правильно, для этого пользователя.

Этот тип является идеальным кандидатом для устранения неполадок с использованием средств прослушивания сети. Средство прослушивания позволяют определить, будет ли клиент отправляет сведения о проверке подлинности на сервере. Средство прослушивания сети, мы используем корпорации Майкрософт является сетевым монитором.

Сетевой монитор

Bombed времени версия сетевого монитора можно загрузить с узла FTP корпорации Майкрософт по адресу:
FTP://FTP.Microsoft.com/PSS/Tools/Netmon/Netmon2.ZIP
Пароль на этом ZIP-файлTrace. После установки сетевого монитора можно найти его, нажав кнопкуАдминистрированиеи нажмите кнопкуАнализ сети.
Выбор сетевого интерфейса для записи
При запуске сетевого монитора в первый раз, в первую очередь необходимо сделать, выберите сетевой адаптер, который требуется использовать в диалоговое окно, показанное на рис. 1.
Свернуть это изображениеРазвернуть это изображение
На рисунке 1: Выбор сети в сетевой монитор

На рисунке 1: Выбор сети в сетевом мониторе

Обратите внимание, что на рис. 1 выбранного интерфейса подключения удаленного доступа или адаптера виртуальной частной сети, как указано в окне свойств для данного интерфейса. В большинстве случаев требуется выбрать один из интерфейсов, отличные от удаленного доступа или VPN-подключения. Я решил использовать снимок экрана VPN-адаптер, который требуется выбрать так, как хотелось бы, чтобы ясно увидеть, как он должен быть идентифицирован. Опять же в почти во всех случаях, адаптер, который вы хотите выбирать является тот, который выглядит как изображено на рисунке в один рисунок 1.

Если необходимо изменить сетевую плату, являются для записи, можно получить доступ к диалоговым окном, чтобы сделать это, нажав кнопкусетипараметр дляCaptureменю.
Настройка размера буфера
Сетевой монитор имеет буфера записи по умолчанию составляет 1 МБ. Это означает, что после собирает 1 МБ данных в сети, он запускается для перезаписи трассировки. Во многих случаях может потребоваться увеличение этого буфера. Чтобы сделать это, нажмите кнопкуCaptureи выберите командуПараметры буфера. При этом отобразитсяПараметры буфера записидиалоговое окно где вы можете увеличить размер буфера. Зависит от того, размер, чтобы указать на объем трафика можно просматривать в сети. Для устранения проблемы, где предполагается создать кадры, которые вас интересуют сразу же после начала сбора данных 2 или 3 МБ буфера должен быть более чем достаточно.

Можно заметить, что вПараметры буфера записидиалоговое окно, можно также изменить размер рамки. Это полезно в тех случаях, в которой необходимо записывать только заголовки, которые отправляются. Уменьшение размера рамки, сохранить место в буфере и по-прежнему записывать необходимые заголовки. Я не подробно об использовании, в этой статье.
Запуск сбора данных
Вы получили ваш набор буфера, вы готовы начать сбор данных. Чтобы начать запись несколькими различными способами:
  • Нажмите клавишу F10.
  • затем –Captureи выберите командуSTART ::в меню.
  • Перейдите на вкладкуНачать записькнопка на панели инструментов (эта кнопка выглядит как кнопка воспроизведения).
Как записывать пакеты с помощью сетевого монитора, вы увидите метров, перемещение и изменение статистики, как показано на рисунке 2. Если что-нибудь происходит, когда выполняется для записи не отображается, вероятно, необходимо изменить сетевую плату для записи.
Свернуть это изображениеРазвернуть это изображение
На рисунке 2: Сетевой монитор во время записи пакетов

На рисунке 2: Сетевой монитор во время записи пакетов

После начала записи в сетевом мониторе воспроизвести проблему, которая требуется для записи и нажмите Остановить запись, нажав кнопкуСообщение об ошибке «Stop:в сетевой монитор, нажав кнопкуCaptureи нажмите кнопкуСообщение об ошибке «Stop:, или нажатием клавиши F11 на клавиатуре. Теперь вы готовы изучить данные записи.

Примечание.Сетевой монитор записывает только данные, идет по сети. Таким образом обычно не записи запроса от веб-приложении путем просмотра на консоли. В некоторых случаях просмотр с помощью IP-адрес или полное доменное имя позволит вам для записи на локальном компьютере.
Анализ собранных данных
После остановки сбора данных можно просмотреть собранные данные, нажав кнопкуCaptureи нажмите кнопкуОтобразить записанные данные, or by pressing F12 on your keyboard. By default, you see all data that went across the wire while you were capturing as shown in Figure 3.
Свернуть это изображениеРазвернуть это изображение
Figure 3: Captured data in Network
		  Monitor

Figure 3: Captured data in Network Monitor

In this case, it would be beneficial to be able to just view the HTTP packets. That’s easily accomplished by filtering the captured data to display only the HTTP protocol. To filter the captured data, clickCaptureи выберите командуФильтр:, or press F8 on your keyboard, or click the toolbar button that looks like a funnel.

В диалоговом окнеDisplay Filterdialog box, double-click theProtocol == Anyfilter to display theExpressiondialog box as shown in Figure 4.
Свернуть это изображениеРазвернуть это изображение
Figure 4: The Expression dialog box
		  provides powerful filtering capabilities

Figure 4: The Expression dialog box provides powerful filtering capabilities

По умолчанию сетевой монитор отображает все протоколы. Чтобы отобразить только протокол HTTP, нажмите кнопкуОтключить все, дважды щелкните протокол HTTP, выберите его и нажмите кнопкуOk.. Сетевой монитор будет отображать только HTTP протокола.

Примечание.Сетевой монитор можно установить фильтр до записи таким образом, чтобы только фиксирует кадры, соответствующие фильтру, установить. В большинстве случаев предпочитают фильтр после сбора данных.

После фильтрации захваченных пакетов, чтобы отображались только протокол HTTP, сетевой монитор будет отображать каждый кадр записи HTTP-данных. Дважды щелкните рамку, можно просмотреть подробные сведения для этого пакета. В случае, мы дело мы пытается определить, если клиент отправил данные проверки подлинности на веб-сервер. Записи, показанный на рис. 5 показан ответ от запроса GET для страницы ASP.NET. Обратите внимание, что веб-сервер ответил с код состояния 401, указывающее, что доступ запрещен на веб-страницу.
Свернуть это изображениеРазвернуть это изображение
На рисунке 5: Сетевой монитор, отображение “ отказано в доступе ” ответ, когда требуется проверка подлинности

На рисунке 5: Сетевой монитор, отображение “ отказано в доступе ” ответ, когда требуется проверка подлинности

Просмотрев заголовки WWW-Authenticate, можно увидеть на рисунке 5, веб-сервер принимает NTLM и Kerberos (согласование) проверки подлинности. Таким образом мы ожидаем, что клиент будет отправлять сведения о проверке подлинности автоматически после сообщения “ Отказано в доступе ” видно здесь.
Последовательность номеров
Чтобы найти ответ клиента пакет, показанный на рис. 5, необходимо посмотреть порядковые номера в ответ. Отслеживает концепцию последовательности чисел часто ошибочно проверки сетевого монитора. Они являются ключом к пониманию порядок, в которой произошло вещи.

На средней панели на рис. 5 можно заметить, что протокол HTTP была увеличена, чтобы вновь отобразить все заголовки HTTP. Над HTTP протокола протокол TCP, и отображается как часть сегмент TCP порядковые номера и номер подтверждения. Порядковые номера (представленное seq в пакет TCP) позволяют идентифицировать определенный сегмент TCP. Каждое TCP последовательность должна сопровождаться подтверждения или подтверждения этой последовательности.

Ниже приведен фрагмент из трассировки запроса 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 
Обратите внимание, что конечный номер последовательности 3410290882. Таким образом чтобы найти ответ сервера, необходимо найти рамки, подтверждает, что последовательность. Другими словами вы ищете ответ подтверждения от 3410290882. Вот этот кадр.
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
Эти номера важны, поскольку бывают случаи, когда ответ будет выводиться перед запросом в трассировку сетевого монитора. Проверить сегментов, с помощью этих чисел является единственным способом, необходимо быть уверенным, о порядке следования пакетов.

Поскольку нам нужны по данной трассировки, чтобы увидеть, если клиент передает сведения о проверке подлинности, TCP-сегментов можно использовать для отслеживания запросов HTTP GET и ответ от сервера. Ниже приведен фрагмент из кадра, который отправляет сведения о проверке подлинности клиента.
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==....   
Что это сказать? Мы видим, что заголовок Authorization присвоено значение "Согласование", и можно увидеть длинная строка символов, посланных в заголовке. Этот ответ сообщает, что клиент и сервер согласования подключения к NTLM. Мы знаем, что проверка подлинности NTLM используется здесь из-за первым символом ""Т" Если он был "Y", было бы Kerberos. Заголовок имеет значение "Согласование" вместо "NTLM". Это не значит, она будет использовать Kerberos или NTLM, но это будет метод проверки подлинности "Согласование" и попробуйте сначала Kerberos, если сможет. Если он не может использовать Kerberos, NTLM будет использовать.

На рисунке 6 является снимке экрана показано выше, таким образом, чтобы можно было увидеть, где сведения о проверке подлинности отправляется кадра. Обратите внимание, что HTTP-заголовков в средней рамке расширенную, что позволяет просматривать сведения о каждом заголовке.
Свернуть это изображениеРазвернуть это изображение
На рисунке 6: Кадр, содержащий сведения о проверке подлинности

На рисунке 6: Кадр, содержащий сведения о проверке подлинности

Эта рамка сообщает, что большинство определенно отправки сведений о проверке подлинности клиента. Если пользователь получает запрещен доступ к этому моменту, это либо потому, что пользователь не имеет разрешения на этот ресурс или так, как изменяется сведения для проверки подлинности в некоторой точке по каналу связи.
Другой способ фильтрации
Во многих случаях вам может устранение сервер, имеющий большого объема трафика. In those cases, you might see a large number of HTTP frames and it may be difficult to find the right ones. By using more filtering expressions, you can easily get right to the correct frames.

Перейдите на вкладкуФильтр:button, or press F8 on your keyboard, to bring up theDisplay Filter«Свойства системы».. On the right side, clickExpressionto add a new expression. There are two different filters you might want to use in this scenario: filter by IP address and filter by HTTP status code.

To filter by IP address, click theСвойствоtab, and scroll down in the left pane until you seeIP:. expandIP:, and scroll down until you seeSource Address. Select==for the relation, and enter the IP address of the client computer as shown in Figure 7. After you do that, you will only see frames coming from the IP address you entered.
Свернуть это изображениеРазвернуть это изображение
Figure 7: Filtering by IP
		  Address

Figure 7: Filtering by IP Address

It’s important to note that many times the IP address may not be the best property on which to filter a trace. Oftentimes users will be hitting a Web server via a router or a firewall. In those cases, the IP address will often be the IP address of the router or firewall and not the client.

You can also filter by HTTP status code. If you’d like to quickly locate the frame where a 401 is sent to the client, you can filter on the 401 HTTP status code. To do that, select HTTP in theProtocol:Propertylist, and expand it. Scroll down, and then clickStatus Code. Select==for the relation, click theдесятичнаяradio button (important), enter401В диалоговом окнеЗначение:field as shown in Figure 8, and then clickOk.. Network Monitor will display only those frames where a 401 status code was sent, as shown in Figure 8.
Свернуть это изображениеРазвернуть это изображение
Figure 8: Filtering by HTTP status
		  code

Figure 8: Filtering by HTTP status code
After you’ve located the frame where the 401 was sent, you can then press F7 on your keyboard to turn off the filter. The frame where the 401 was sent will still be highlighted, and you can then examine the surrounding frames for the client’s response to the 401.

Fiddler – The HTTP Debugging Proxy

If you are browsing from Internet Explorer on the client computer that you are troubleshooting, you can use Fiddler (shown in Figure 9) instead of Network Monitor to capture the HTTP information sent from the client. Fiddler captures only HTTP packets and integrates directly into Internet Explorer.
Свернуть это изображениеРазвернуть это изображение
Figure 9: Fiddler

Figure 9: Fiddler

In Figure 9, you can see the 401 response from the server and then you can see the client respond with aNegotiateheader (highlighted). In this case, a runtime error occurs after the client sends authentication (which is unrelated to this issue), but we can clearly see that the client did its part by sending the Kerberos ticket.

You can download Fiddler from the following Web site:
http://www.fiddlertool.com.

What’s next?

Using Network Monitor or Fiddler, you can often rule out the client as being a problem in authentication failures. Next month, we’ll go over how to use Filemon and Regmon from SysInternals. These tools are especially helpful in troubleshooting permission problems on the file system and in the registry.
As always, feel free to submit ideas on topics you want addressed in future columns or in the Knowledge Base using theДля этого попроситеФорма:.

Свойства

Код статьи: 891032 - Последний отзыв: 26 ноября 2010 г. - Revision: 2.0
Информация в данной статье относится к следующим продуктам.
  • Microsoft ASP.NET 1.0
  • Microsoft ASP.NET 1.1
Ключевые слова: 
kbhowto kbasp kbmt KB891032 KbMtru
Переведено с помощью машинного перевода
ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.
Эта статья на английском языке:891032

Отправить отзыв

 

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