Я использую этот код, чтобы сделать запрос на указанный URL:
private static string GetWebRequestContent(string url)
{
string sid = String.Empty;
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url);
req.KeepAlive = false;
using (HttpWebResponse res = (HttpWebResponse)req.GetResponse())
{
using (StreamReader sr = new StreamReader(res.GetResponseStream()))
{
sid = sr.ReadToEnd().Trim();
}
}
return sid;
}
Я использую его для проверки липкости Work Load Balancer, за которой стоят 3 сервера. Все они имеют статический HTM-файл с именем sid.htm, в который записывается идентификатор сервера.
Для URL с HTTP это работает нормально. Но с HTTPS это не работает. Я получаю это исключение:
Запрос был прерван: не удалось создать безопасный канал SSL / TLS.
На данный момент у меня есть только 2 сервера за WLB и один сам по себе с публичным IP за брандмауэром. HTTPS-запросы работают нормально, если я подключаюсь к автономному серверу, но когда я подключаюсь к WLB, я получаю вышеуказанную ошибку.
Одна вещь: для переключения между попаданием на один сервер и WLB я использую мой файл hosts. Записи DNS для моего домена в данный момент указывают на один сервер. Поэтому я поместил запись в файл хостов, чтобы попасть в WLB. Это не должно вызывать проблем ...
Мой вопрос : Какие учетные данные / сертификаты SSL использует HttpWebRequest? Если он использует 40-битный DES или 56-битный DES, это причина, потому что они отключены в WLB. Но эти сертификаты не использовались в браузерах начиная с IE3 и Netscape 1 и 2.