Custom. NET Действие: Запрос был прерван: не удалось создать безопасный канал SSL / TLS - PullRequest
0 голосов
/ 09 июля 2020

В режиме пакетной службы мы запускаем пользовательское действие с точкой net, и это. Инструмент net загружает данные из некоторых API. До вчерашнего дня он работал нормально, без проблем. Теперь мы сталкиваемся с указанной ниже ошибкой при загрузке данных из API. Я не знаю, почему мы внезапно столкнулись с такой проблемой.

Ошибка: запрос был прерван: не удалось создать безопасный канал SSL / TLS. StackTrace: в System. Net .WebClient.OpenRead (адрес Uri) в Import.DownloadSite (String url, String type)

То же самое. Net инструмент отлично работает на наших локальных настольных компьютерах (Windows 10 ОС). Получение ошибки только в пакетном аккаунте машины. Поэтому я думаю, что проблема в машине с пакетным аккаунтом.

Используя приведенный ниже код C# для загрузки данных из API:

WebClient wc = new WebClient();
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls | SecurityProtocolType.Ssl3;
return wc.DownloadString(string.Format(ApiUrl, type));

Я попробовал большинство решений, предложенных в Ссылка ниже, и у меня ничего не работает. Запрос был прерван: не удалось создать безопасный канал SSL / TLS

Дополнительная информация:

  • . NET Framework: v4.5
  • Пакетная машина: Windows Server 2012 R2 (x64)

1 Ответ

0 голосов
/ 31 июля 2020

Вам необходимо добавить HTTP-заголовок «Expect» со значением «100-continue». В вашем случае, пожалуйста, добавьте эти строки кода перед созданием запроса:

 ServicePointManager.Expect100Continue = true;
 ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls
        | SecurityProtocolType.Tls11
        | SecurityProtocolType.Tls12
        | SecurityProtocolType.Ssl3;
...