Podio - существующее соединение было принудительно закрыто удаленным хостом

С сегодняшнего дня мы получаем следующую ошибку при выполнении запросов API к Podio:

Существующее соединение было принудительно закрыто удаленным хостом. Описание: во время выполнения текущего веб-запроса произошло необработанное исключение. Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и о том, где она возникла в коде.

Трассировки стека:

Exception Details: System.Net.Sockets.SocketException: An existing connection 
was forcibly closed by the remote host

[SocketException (0x2746): An existing connection was forcibly closed by the remote host]
   System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult) +82
   System.Net.Sockets.NetworkStream.EndRead(IAsyncResult asyncResult) +57

[IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host.]
   System.Net.TlsStream.EndWrite(IAsyncResult asyncResult) +232
   System.Net.PooledStream.EndWrite(IAsyncResult asyncResult) +13
   System.Net.ConnectStream.WriteHeadersCallback(IAsyncResult ar) +119

[WebException: The underlying connection was closed: An unexpected error occurred on a send.]
   System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) +623
   System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar) +64

[HttpRequestException: An error occurred while sending the request.]
   System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +99
   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +58
   System.Net.Http.<FinishSendAsync>d__58.MoveNext() +948
   System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +99
   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +58
   PodioAPI.<Request>d__36`1.MoveNext() +626
   System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +99
   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +58
   PodioAPI.<Get>d__31`1.MoveNext() +307
   System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +99
   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +58
   PodioAPI.Services.<GetItem>d__6.MoveNext() +277
   System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) +99
   System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) +58

Пожалуйста, кто-нибудь может пролить свет на этот вопрос? Мы ничего не изменили в нашем коде. Это в основном только начало происходить. Пробовал с разных устройств и локаций, так что подумайте, должно быть, что-то изменилось в конце Подио. Мы используем библиотеки здесь - http://podio.github.io/podio-dotnet/

2 ответа

Решение

Podio отключили TLS 1.0 - последний бит был сделан вчера. Некоторое время назад TLS 1.0 устарел, и его конец жизни назначен на июнь 2018 года.

Подробности здесь: https://help.podio.com/hc/en-us/community/posts/360003048772-API-Security-Update

Podio также отключит TLS 1.1 когда-нибудь, поэтому, если вы обновляетесь - переходите на последнюю версию TLS 1.2.

Также теперь публикуются новые версии пакетов nuget:

Ответ здесь, если ваше приложение ориентировано на Dotnet Framework между 4.0 < 4.6, тогда вам нужно установить по умолчанию SecurityProtocol как минимум Transport Layer Security (TLS) 1.1, т.е.

SecurityProtocolType.Tls11

ref: Приложение, ориентированное на.NET 4.0, может поддерживать до TLS 1.2, если.NET 4.5 установлен в той же среде

Другие вопросы по тегам