Возможно ли установить версию TLS в app.config?

#.net #ssl #tls1.2

#.net #ssl #tls1.2

Вопрос:

У меня есть настольное приложение, которое использует веб-службы (SharePoint).

Поскольку я обновил TLS до 1.2, я получаю эту ошибку:

 System.Net.WebException: The request was aborted: Could not create SSL/TLS secure channel.
  

Код не устанавливает протокол программно, но это довольно старый код, поэтому я подозреваю, что он использует 1.1.

Я знаю, что могу изменить это в коде, но прежде чем я это сделаю, я хотел спросить: есть ли какой-либо способ установить версию протокола в app.config и таким образом избежать изменения кода?

Ниже приведен стек вызовов, если это может помочь:

Заранее спасибо.

 System.Net.WebException: The request was aborted: Could not create SSL/TLS secure channel.
at System.Web.Services.Protocols.WebClientProtocol.GetWebResponse(WebRequest request)
at System.Web.Services.Protocols.HttpWebClientProtocol.GetWebResponse(WebRequest request)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
  

Некоторые сведения о режиме:

К сожалению, я знаю, что именно было сделано, обновление было выполнено кем-то другим, то же самое для версии .NET, которую я не знаю, 3.5 или более поздней.

Я спрашиваю, можно ли настроить параметр, показанный ниже, в app.config, чтобы мне не нужно было повторно компилировать в application:

 System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12
  

Надеюсь, это имеет смысл?

Комментарии:

1. Поскольку я обновил TLS до 1.2 , можете ли вы уточнить (например, запускали ли вы программу установки или делали что-то вручную)? Кроме того, какая это версия .NET?

2. Привет, Джон, спасибо за ответ, я добавил еще несколько деталей к сообщению.

3. learn.microsoft.com/en-us/dotnet/framework/network-programming/… Microsoft задокументировала все. Кстати, никогда не угадаешь, что произошло. Используйте такой инструмент, как Wireshark, для анализа рукопожатий TLS, и тогда детали должны быть для вас очевидны.

4. TLS не поддерживается в .NET 3.5, и обходного пути нет. Итак, я думаю, вы застряли при перекомпиляции. Эта ссылка может помочь.

5. Спасибо вам обоим за ваши ответы: «Я думаю, вы застряли при перекомпиляции» — это правильный путь. Попробовать стоило.