以下在指定的行上无声地失败。
using (var ht = new HttpClient())
{
var r = await ht.GetAsync(RootUrl + Id.ToString()); <-----
Page = await r.Content.ReadAsStringAsync();
}
没有例外,没有错误,没有任何错误。执行只是停止,没有在下一行遇到断点,并且应用程序退出。 try / catch中的周围环境也不会触发捕获。
作为DNX .xproj命令行应用程序运行。
与coreclr和full相同的行为。通过VS和DNX命令行启动。
到底发生了什么事?
Project.json如下:
{
"version": "1.0.0-*",
"description": "Scrapers Console Application",
"authors": [ "Kaelan" ],
"tags": [ "" ],
"projectUrl": "",
"licenseUrl": "",
"dependencies": {
"System.Net.Http": "4.0.0-*",
"HtmlAgilityPack": "1.4.9"
},
"commands": {
"Scrapers": "Scrapers"
},
"frameworks": {
"dnx451": { }
}
}
编辑:我正在使用的完整代码。拿出实际项目的大块进行测试,(保持同样的问题)。
public class Program
{
const string RootUrl = "<-snipped->";
public async void Main(string[] args)
{
var Id = 244;
var Page = "";
using (var ht = new HttpClient())
{
var r = await ht.GetAsync(RootUrl + Id.ToString());
Debug.Write(r.StatusCode + " on page: " + Id.ToString());
Page = await r.Content.ReadAsStringAsync();
}
Console.ReadLine();
}
}
答案 0 :(得分:2)
您应该避免使用async void
。
对于没有结果值的方法,将返回类型更改为相应的异步返回类型:Task
。