Request.GetResponseAsync()在后台任务中不起作用,没有引发异常

本文关键字:异常 不起作用 GetResponseAsync 后台任务 Request | 更新日期: 2023-09-27 18:02:23

我正在用Visual Studio做一个通用的Windows平台应用程序,我面临着一个非常奇怪的问题。它是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:

Scott Chamberlain要求的方法签名:

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

Request.GetResponseAsync()在后台任务中不起作用,没有引发异常

我也有同样的问题。应用程序关闭,没有任何异常。即使在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)
{
}

你可以绕过这个问题