Базовое соединение было закрыто: при отправке произошла непредвиденная ошибка - не повторяется - PullRequest
0 голосов
/ 21 сентября 2018

У меня такой же вопрос здесь НО это не работает для меня в некоторых случаях, и я объясню это сейчас.

Один ответ на этот вопрос должен был изменить на 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, но он не работал.Что попробовать сейчас?

...