Получить заголовки WebExceptions на сервере балансировки нагрузки - PullRequest
0 голосов
/ 07 мая 2018

Мы используем один сервер балансировки нагрузки, который перенаправляет нас на четыре других сервера и два других сервера, которые не входят в ферму сервера балансировки нагрузки. Конфигурация выглядит отлично выполненной администратором системы.

Проблема, с которой я сталкиваюсь, заключается в том, что когда я хотел бы получить веб-ответ HTTP и взять заголовки ответа, я столкнулся с проблемой. Проблема, с которой я столкнулся, заключается в том, что «ссылка» с балансировкой нагрузки, которую я использую с сервера балансировки нагрузки, не дает ожидаемого мне ответа. Я использую приведенный ниже код в качестве примера.

try
{
    var myHttpWebRequest = WebRequest.Create(url);
    myHttpWebRequest.Credentials = credentials;


    var myHttpWebResponse = myHttpWebRequest.GetResponse();
    myHttpWebResponse.Close();
}
catch (WebException e)
{
    Console.WriteLine("WebException: " + url);
    Console.WriteLine("Web Exception Status: " + e.Status);
    Console.WriteLine("\n");

    if (e.Status == WebExceptionStatus.ProtocolError)
    {
         Console.WriteLine(((HttpWebResponse)e.Response).Headers);
    }
}

Теперь WebExceptionStatus, который я использую, когда выполняю код на сервере с балансировкой нагрузки, - это «SendFailure», который не дает мне никакого результата «response.headers».

Если я установлю и использую "curl"

curl [load balance server url] -k -I

в командной строке я буду брать заголовки при использовании URL сервера балансировки нагрузки.

enter image description here

В заключение, моя цель - я хотел бы взять и использовать WebExceptionStatus, "X-FEServer", "www-Authenticate" и "Date" для некоторых целей, но это невозможно при использовании подхода c #, как указано выше, для извлечения .

Пожалуйста, убедитесь, что вы понимаете серверный подход с балансировкой нагрузки перед любым комментарием или ответом. Любое предложение будет полезно

...