MSDN.WhiteKnight - Stack Overflow answers
Ответ на "Проблемы при получение доступа к AppCenter distribute"
Answer 1146111
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
Так делать нельзя: https://docs.microsoft.com/en-us/dotnet/framework/network-programming/tls
Do not specify the TLS version. Configure your code to let the OS decide on the TLS version.
В коде вообще никаких установок свойства ServicePointManager.SecurityProtocol не должно быть. Если что-то не работает, это нужно решать настройками реестра / обновлениями ОС, а не привязкой к конкретному протоколу на уровне кода.
Почти у всех людей, кто сталкивается с данной проблемой стоит Windows 7.
В этом нет ничего удивительного. Вы зашили в коде использование TLS 1.2. .NET Framework при работе с криптографией использует SChannel, стандартный компонент Windows. В Windows 7 в SChannel TLS 1.2 по умолчанию отключен (см. таблицу по ссылке). Решается эта проблема включением его через реестр: https://docs.microsoft.com/en-us/windows-server/security/tls/tls-registry-settings#tls-12
Короче, кто знает, в чем проблема, что не так с этим CDN? Почему он небольшое кол-во людей блокирует?
На этот вопрос могут ответить только администраторы CDN
И почему тогда через простой браузер идет всегда запрос?
Если "простой браузер" на движке Chrome, то он использует не SChannel, а OpenSSL, совершенно другую реализацию, и по протоколам и по наборам шифров. Соответственно, от версии Windows уже ничего не будет зависеть, но будет зависеть от версии OpenSSL в браузере. Короче, это вещи не сравнимые.
То есть в итоге вам нужно сделать следующее:
- Выпилить из кода все конструкции типа ServicePointManager.SecurityProtocol = ...
- Рекомендовать клиентам включить у себя в настройках SChannel новые протоколы (TLS 1.2 и TLS 1.3 в случае достаточно новой версии Windows 10). Реализовать программную установку, если потребуется.
Поддержку более старых протоколов будут отрубать, и это хорошо. TLS 1.0/1.1 довольно старый и в нем есть уязвимости. Если нет необходимости поддержки WinXP/2003, он и не нужен. Вероятно у вас сейчас CDN балансирует нагрузку между разными серверами, каждый из которых поддерживает разный набор протоколов, отсюда и аномалии. Но на старые протоколы так или иначе не нужно полагаться.
Content is retrieved from StackExchange API.
Auto-generated by ruso-archive tools.