У меня проблема с моим приложением. При попытке использовать API ZipWise.com для получения почтовых индексов я получаю сообщение об ошибке «Запрос был прерван: не удалось создать безопасный канал SSL / TLS». Я не внес никаких изменений в программу, и она внезапно перестала позволять мне использовать их API. Я попытался добавить это в начало своего кода перед созданием запроса:
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
Я отключил TLS 1.0, TLS 1.1, SSL 2.0 и SSL 3.0 на сервере (и перезагрузил). Я могу открыть URL в браузере без проблем. Я проверил в лабораториях SSL, что они используют TLS 1.2.
Когда я запускаю это на своей разработке P C, она выполняется без проблем и возвращает несколько почтовых индексов. Когда я пытаюсь запустить его на сервере, он дает сбой и выдает эту ошибку.
Вот пример кода, который я использовал в приложении Windows форм, которое выдает такую же ошибку:
private void button1_Click(object sender, EventArgs e)
{
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
ServicePointManager.Expect100Continue = true;
string url = "https://zipwise.com/webservices/radius.php?key=**********&zip=90210&radius=50";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(url));
request.Method = "POST";
HttpWebResponse response = (HttpWebResponse)request.GetResponse();//exception occurs here
StreamReader input = null;
XDocument doc = null;
if (response.StatusCode.Equals(HttpStatusCode.OK))
{
input = new StreamReader(response.GetResponseStream());
doc = XDocument.Parse(input.ReadToEnd());
}
response.Close();
request.ServicePoint.CloseConnectionGroup(request.ConnectionGroupName);
if (input != null)
{
input.Close();
var tempZips = (from z in doc.Descendants("result") select z.Descendants("zip").Single().Value).ToList();
finalZips.AddRange(tempZips);
foreach(string s in finalZips)
{
listBox1.Items.Add(s);
}
}
}
Любая помощь приветствуется!
РЕДАКТИРОВАТЬ: Приложение работает. NET 4.6, Сертификат SSL на сервере все еще действителен.