Я создаю новое приложение Windows 8.1 только для проверки этой ошибки, которую я получаю. Приложение имеет только одну функцию:HttpClient.GetStringAsync (url) throwing «Основное соединение было закрыто: произошла непредвиденная ошибка при отправке». Windows 8.1 C#
private async void TestMethod()
{
try
{
HttpClient httpClient = new HttpClient();
HttpResponseMessage response = await httpClient.GetAsync("https:// url ");
}
catch (HttpRequestException e)
{
string s = e.InnerException.Message;
}
}
Это всегда ввод улов и бросали «Базовое соединение закрыто: Непредвиденная ошибка на посылке». Я нашел много вопросов, говорящих о том, что ни одно решение не работало для меня, поскольку это приложение для Windows 8.1 Store не является приложением ASP.NET.
Uri, который я использую, открывается в браузере и работает очень хорошо.
Я даже добрался до этой статьи: https://support.microsoft.com/en-us/kb/915599, но без решения. Кто-нибудь уже воспользовался этой проблемой?
Edit:
Я изменил метод использовать async Task
System.Net.Http.HttpRequestException: An error occurred while sending the request. ---> System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a send. ---> System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host. ---> System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host at System.Net.Sockets.Socket.EndReceive(IAsyncResult asyncResult) at System.Net.Sockets.NetworkStream.EndRead(IAsyncResult asyncResult) --- End of inner exception stack trace --- at System.Net.TlsStream.EndWrite(IAsyncResult asyncResult) at System.Net.PooledStream.EndWrite(IAsyncResult asyncResult) at System.Net.ConnectStream.WriteHeadersCallback(IAsyncResult ar) --- End of inner exception stack trace --- at System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult) at System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult ar) --- End of inner exception stack trace --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at HttpRequestTestApp.MainPage.d__0.MoveNext()
Вы пытались использовать другие конечные точки? вы получаете такую же ошибку? –
Опубликовать исключение * full * (т. Е. Использовать 'e.ToString()'), а не только сообщение внутреннего исключения. Также проверьте код состояния ответа. Это 4xx, 5xx? Используйте Fiddler для захвата необработанного запроса и ответа сервера. Если сервер выходит из строя и даже не возвращает полный ответ, нет смысла менять код клиента. –
PS Как вы называете этот метод? 'async void' означает« fire-and-forget ». Его ждать нельзя. Ваша программа или тестовая среда, вероятно, заканчивается до завершения теста. Вместо этого используйте 'async Task'. 'async void' следует использовать только для обработчиков событий или подобных методов –