我正在使用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();
这对我来说是非常罕见的情况。 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)
答案 0 :(得分:0)
我遇到了同样的问题。申请截止,没有任何例外。即使在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)
{
}
你可以绕过这个问题。