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