C# Консольное приложение WebClient возвращает «Базовое соединение было закрыто: при отправке произошла непредвиденная ошибка» - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть консольное приложение, написанное на . NET framework 4.7.2 , которое работает на сервере Microsoft Windows 2016 и недавно обновлено до нового сервера 2019 . После обновления мое приложение перестает работать и выдает исключение «Основное соединение было закрыто: при отправке произошла непредвиденная ошибка». Я исследовал и использовал несколько решений, но всегда получал одно и то же исключение. Использовали протокол безопасности, также использовал HttpResponse тип вместо использования WebClient .

`System.Net.ServicePointManager.SecurityProtocol |=  SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;`

Ниже приведен метод, который я использую в своем коде: Этот метод использует Ключевые и секретные параметры для доступа и получения ответа токена из baseUrl. `

public string GenerateTokenWithKeySecret(string baseUrl, string key, string secret)
{
    System.Net.ServicePointManager.SecurityProtocol |=  SecurityProtocolType.Tls11 |
                                                   SecurityProtocolType.Tls12;
    using (var webClient = new WebClient())
    {
        var auth = Base64Encode($"{key}:{secret}");
        webClient.Headers.Add("cache-control", "no-cache");
        webClient.Headers.Add("Authorization", $"BASIC {auth}");
        webClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
        string response = webClient.UploadString($"{baseUrl}token", 
                                   "grant_type=client_credentials");
        var tokenResponse = JsonConvert.DeserializeObject<Response>(response);
        return tokenResponse.AccessToken;
      }
      return "";
}

`

Ниже приведен скриншот исключения. enter image description here

Пожалуйста, дайте мне знать, если вам нужна дополнительная информация от меня. Я был бы счастлив сделать этот код совместимым с вашими ценными предложениями. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...