NokiMo
Хачатур
Хачатур

boosty


Избегаем непредсказуемые ошибки соединения / аутентификации

Если ваша программа ловит ошибку аутентификации или ваш Telegram-бот завершает свою работу из-за ошибки ввода/вывода и сетевой поток схлопывается сам по себе про так, вам пригодится пара Моих решений ниже.

В первом случае, вам скорее всего поможет добавление протокола безопасности таким способом:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
ServicePointManager.ServerCertificateValidationCallback = (object obj, X509Certificate X509certificate, X509Chain chain, System.Net.Security.SslPolicyErrors errors) => true;
В случае с Telegram-ботом достаточно этого:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;
Самое интересное, что 100% объяснить почему соединение не рвётся на VPN, но точно рвётся/сбрасывается на обычном, например, российском Ростелеком, никто не может. Но смена и чёткое указание протоколов безопасности внезапно помогают, что как бы намекает о том, что эти строки всё-таки в вашей программе или в вашем боте таки не будут лишними.
Причём в первом случае ловят ошибку аутентификации пользователи именно Windows 7. Пользователи 8.1 и выше такой проблемы не наблюдают. И именно с конца 2021 года эта проблема себя проявила на всех семёрках ┐('~`;)┌
Так или иначе, теперь у вас есть решение, которое стоит добавлять в свой проект с такой же уверенностью, как и Directory.SetCurrentDirectory(AppContext.BaseDirectory), о которой говорилось в другой теме.
Ссылка по теме:
https://learn.microsoft.com/ru-ru/dotnet/api/system.net.securityprotocoltype

Избегаем непредсказуемые ошибки соединения / аутентификации

Related Creators