c # Обратный прокси-сервер не возвращает ответ от 1 внутренней службы - PullRequest
0 голосов
/ 13 октября 2018

У меня есть AC # обратный прокси.Он работает для одной внутренней службы (A), но есть одна, которая выходит из строя (B).Я использую Почтальон для тестирования.Подключение к (A) показывает следующее в журналах обратного прокси.

DEBUG - Internal server responded with 22119
DEBUG - Internal server responded 
<!doctype html>

<html lang="en">
....

Подключение к (B) показывает следующее в журналах обратного прокси.

DEBUG - Internal server responded with 4478
DEBUG - Internal server responded 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<!-- Login page -->
<HTML>

Основные строки включены ниже

byte[] responseData = server.GetResponseStreamBytes(internalResponse);
Log.Debug("Internal server responded with " + responseData.Length.ToString());
Log.Debug("Internal server responded \n" +
                      System.Text.Encoding.UTF8.GetString(responseData));

for (int i = 0; i < internalResponse.Headers.Count; ++i)
{
   externalResponse.AddHeader(internalResponse.Headers.Keys[i], internalResponse.Headers[i]);
}
externalResponse.OutputStream.Write(responseData, 0, responseData.Length);
externalResponse.End();

При отладке именно строка

externalResponse.End();

заставляет почтальон сообщать: «Не удалось получитьответ ", оператор записи выполняется правильно.Службы A и B работают правильно, если они подключены напрямую через браузер.

1 Ответ

0 голосов
/ 18 октября 2018

Внутренняя служба возвращала частичный ответ.Передача всех заголовков обратно клиенту вызвала ERR_INVALID_CHUNKED_ENCODING, которая была видна только через Chrome, а не почтальон.Решено путем удаления заголовка «Transfer-Encoding».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...