У меня такой же вопрос здесь НО это не работает для меня в некоторых случаях, и я объясню это сейчас.
Один ответ на этот вопрос должен был изменить на ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
, которыйбудет работать, но для кого-то с более новой .Net
версией, но у меня есть .Net 4.0
версия, так что следующий ответ в том же вопросе помог мне, и это установить его на
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
, который работално на Windows 10, Windows 7, XP....
, но не на Windows Server 2003
, и это потому, что Windows server 2003
не поддерживает TLS 1.1
или TLS 1.2
.
Решением для этого является проверка того, какие окна находятся при запуске моего приложения, иустановите для SecurityProtocol
значение, похожее на это:
if (Environment.OSVersion.Version.Major == 10 || Environment.OSVersion.Version.Major == 6)
{
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072;
}
else if(Environment.OSVersion.Version.Major == 5 && Environment.OSVersion.Version.Minor == 2)
{
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3;
}
Но я получаю ошибку из заголовка, и я думаю, так как я использую старую версию .Net 4.0
, тогда SecurityProtocolType.Ssl3
смущает ее.
Я думаю, что решение для этого состоит в том, чтобы использовать код, который я использовал 3072
, но теперь для Ssl3
, но нигде не могу найти эти коды, чтобы попробовать.
Поэтому сначала я бы спросил, может ли кто-нибудь предоставить мне ссылкуиз этих кодов, и второе, если проблема в чем-то другом, чтобы указать мне на тздесь.
РЕДАКТИРОВАТЬ: Из здесь выяснилось, что код для SSL 3.0 48
, и попробовал тот же трюк, что и для Tls12
, но он не работал.Что попробовать сейчас?