Что смущает или заставляет мой заголовок Http Web Request иногда содержать «соединение через прокси» вместо «соединение»? - PullRequest
2 голосов
/ 14 июля 2011

У меня есть настольное приложение в C # .NET, которое очень часто подключается к веб-службе ASMX.Есть два фоновых работника, которые очень часто подключаются к этим веб-сервисам.Приложение также имеет два элемента управления веб-браузера в форме, которые загружают две разные веб-страницы с веб-сайта ASP.NET.Эти страницы также имеют постоянные запросы AJAX.

Проблема: Иногда некоторые запросы - как через веб-ссылку, так и через XMLHttp на страницах браузера застряли.Я проверил с помощью fiddler и обнаружил, что эти запросы получают HTTP-ответ 502 статуса и фактически не удалось установить соединение TCP IP.Шаблон / причина проблемы, которую я обнаружил, состоит в том, что все веб-запросы http из приложения обычно содержат заголовок «Connection», но некоторые произвольные запросы вместо этого содержат заголовок «Proxy-Connection».И уверен, что ошибка 502 вызывается ВСЕГДА и ТОЛЬКО для этих запросов с заголовком «Proxy-Connection».

Если это является причиной проблемы, мне интересно, что вызывает некоторые иззапросы на отправку заголовка «Proxy-Connection» вместо обычного заголовка «Connection»?

ОБНОВЛЕНИЕ : Поскольку я постоянно проверяю и отслеживаю это с помощью fiddler - у меня теперь есть новая находка.В то время как приложение работает, и fiddler захватывает журналы - я случайно ищу в журналах «Прокси» в заголовках запросов, и иногда он говорит «1 сессия содержит« Прокси »», но в следующий момент, когда я снова исследую, он говорит «0 сессий содержится»Proxy».Я даже быстро сохранил выбранный журнал, когда он сказал: «1 сеанс содержал« Прокси »», но когда я позже проверю этот сохраненный журнал, он НЕ содержит «Прокси» в заголовках запроса, и статус также равен 200 (не 502).Теперь, когда я играю с фиддлером, получающим журналы в реальном времени, я вижу, что почти все (или большинство) запросов фактически начинаются с заголовка «Proxy-Connection», который заменяется на «Connection» к моменту завершения запроса.Так значит ли это, что запросы, которые не завершены, сохраняют заголовок «Proxy-Connection»?

Есть какая-нибудь подсказка?Я запутался и пытаюсь выяснить хотя бы тот факт, что - вызывает ли заголовок Proxy-Connection ошибку 502?ИЛИ ошибка 502 вызывает заголовок прокси-соединения?

1 Ответ

1 голос
/ 21 мая 2012

Между вами и веб-сервером должен быть прокси-сервер.Если вы посмотрите на http://www.checkupdown.com/status/E502.html, то ошибка HTTP 502 обычно возникает из-за того, что прокси или шлюз не может подключиться к серверу назначения.Как правило, это либо из-за проблем с подключением, либо из-за проблем с нагрузкой (если вы работаете через собственный маршрутизатор, возможно, это связано с подключением, если вы используете прозрачный прокси-сервер от вашего провайдера, то это может быть и другое).

Вы не можете ничего сделать, чтобы остановить ошибку, вам придется написать свой код, чтобы перехватить эту ошибку и повторить попытку.

Итак, чтобы ответить на ваш вопрос:

Заголовок прокси-соединения вызывает ошибку 502?ИЛИ ошибка 502 вызывает заголовок прокси-соединения?

Заголовок прокси-соединения указывает на то, что какой-то прокси или шлюз имеет ошибку при подключении к веб-службе.Сама по себе она не является причиной ошибки 502, а ошибка 502 не является причиной заголовка Proxy-Connection.

...