Request.GetResponseAsync() не работает в фоновой задаче, исключение не возникает

Я делаю универсальное приложение для платформы Windows с Visual Studio и сталкиваюсь с очень странной проблемой. Это фоновая задача для компонента среды выполнения Windows. Фоновая задача выполняется без проблем, если проблемная часть кода удалена.

Когда код достигнут первое предложение (WebRequest request = WebRequest.Create(_finalURI);) выполнено но WebResponse response = await request.GetResponseAsync(); немедленно останавливает фоновую задачу, без исключения, без чего-либо. Довольно странно.

     WebRequest request = WebRequest.Create(_finalURI);
     WebResponse response = await request.GetResponseAsync(); // Here it closes
     Stream dataStream = response.GetResponseStream();
     StreamReader reader = new StreamReader(dataStream);
     textResponse = reader.ReadToEnd();

Это очень редкая ситуация для меня. Я загрузил видео на YouTube, чтобы вы могли видеть его так, как оно происходит. Я прошел через это более двух часов:(и продолжаю пытаться.

РЕДАКТИРОВАТЬ:

Я перешел в класс HttpClient и это то же самое поведение.

var httpClient = new HttpClient();
textResponse = await httpClient.GetStringAsync(_finalURI); // Here it closes
httpClient.Dispose();

РЕДАКТИРОВАТЬ 2:

Подпись метода, по требованию Скотта Чемберлена:

public async Task<ArticleList> GetArticleList(ArticleAttributes attributes,
ImageResFromAPI imageres, string singleArticle)

1 ответ

У меня такая же проблема. Приложение закрывается без каких-либо исключений. Даже в AppDomain.CurrentDomain.UnhandledException

Это довольно странно, но вместо использования await request.GetResponseAsync();, если вы используете,

var webResponseTask = request.GetResponseAsync();

await Task.WhenAll(webResponseTask);

if (webResponseTask.IsFaulted)
  throw webResponseTask.Exception;

using (var webResponse = webResponseTask.Result)
{
}

Вы можете обойти эту проблему.

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