У меня есть консольное приложение, написанное на . 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 "";
}
`
Ниже приведен скриншот исключения.
Пожалуйста, дайте мне знать, если вам нужна дополнительная информация от меня. Я был бы счастлив сделать этот код совместимым с вашими ценными предложениями. Спасибо.