' await HttpClient.GetAsync() '静默失败- DNX命令行应用程序



以下命令在指定行静默失败。

using (var ht = new HttpClient())
{
    var r = await ht.GetAsync(RootUrl + Id.ToString()); <-----
    Page = await r.Content.ReadAsStringAsync();
}

没有异常,没有错误,什么都没有。执行只是停止,不会在下一行遇到断点,并且应用程序退出。环绕try/catch也不会触发catch。

作为DNX .xproj命令行应用程序运行。

coreclr和full的行为相同。通过VS和DNX命令行启动。

这到底是怎么回事?

项目。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();
    }
}

您应该避免使用async void

将没有结果值的方法的返回类型更改为适当的异步返回类型:Task .

最新更新