Member 11170300 Ответов: 2

Vs2010 C# удаленный сервер вернул ошибку: (400) плохой запрос


Следующий код вернул ошибку:(400) неверный запрос:
sub = "https://www.sosyachting.com";
ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(AcceptAllCertifications); 
ServicePointManager.Expect100Continue = true;
ServicePointManager.SecurityProtocol = (SecurityProtocolType)(0xc0 | 0x300 | 0xc00 | 0x30); //tls,tls1.1,tls1.2,ssl3
System.Net.WebClient wc = new System.Net.WebClient();
byte[] raw = wc.DownloadData(sub);
string webData = System.Text.Encoding.UTF8.GetString(raw);

AcceptAllCertifications определяется как:
public bool AcceptAllCertifications(object sender, System.Security.Cryptography.X509Certificates.X509Certificate certification, System.Security.Cryptography.X509Certificates.X509Chain chain, System.Net.Security.SslPolicyErrors sslPolicyErrors)
{
    return true;
}


Я использую VS2010 c#, windows 7.

Что я уже пробовал:

Код включает в себя все предложения, которые я нашел в интернете. Любые другие идеи будут высоко оценены.

2 Ответов

Рейтинг:
2

RickZeeland

Поскольку вы используете более старую версию Windows и, вероятно, более старую версию .NET, это может быть TLS вопрос.
Более подробная информация здесь: Рекомендации по обеспечению безопасности транспортного уровня (TLS) с помощью платформы .NET Framework | Microsoft Docs[^]
Самый простой способ решить эту проблему-использовать .Net на 4.7 или позже.
Также видеть: ваш-сетевой-код-может-перестать-работать-в-июне[^]


Рейтинг:
2

Member 11170300

Спасибо. Я вроде как решил то же самое, но не могу установить более высокую версию NET на Windows 7. Я нахожусь в процессе обновления до Windows 10 и VS 2012, что, надеюсь, решит мою проблему.


Member 11170300

К сожалению, не решен.

Теперь я запускаю Visual Studio 2012 на Windows10 и targetting .NET4.5, но получаю одно и то же сообщение об ошибке с неизмененным кодом

Member 11170300

Я теперь обновить .Объем 4.8. До сих пор не удается.

Richard Deeming

Если вы хотите ответить на решение, нажмите кнопку "есть вопрос или комментарий?" нажмите кнопку под этим решением и оставьте комментарий.

НЕ опубликуйте свой ответ как "решение".