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)
{
}
Вы можете обойти эту проблему.