我正在使用 Visual Studio 开发通用 Windows 平台应用程序,但我遇到了一个非常奇怪的问题。它是 Windows 运行时组件上的后台任务。如果删除了有问题的代码部分,后台任务将毫无问题地执行。
当代码到达第一句时 (WebRequest request = WebRequest.Create(_finalURI);
) 被执行但是 WebResponse response = await request.GetResponseAsync();
立即停止后台任务,无一异常(exception),没有任何事情。很奇怪。
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();
这对我来说是非常罕见的情况。 I uploaded a video to YouTube so you can see it as it happens .我已经经历了两个多小时 :( 并继续尝试。
编辑:
我已经更改为 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)
最佳答案
我也遇到了同样的问题。应用程序无一异常(exception)地关闭。即使在 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)
{
}
你可以绕过这个问题。
关于c# - Request.GetResponseAsync() 在后台任务中不起作用,没有引发异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31371597/