调试器只是在测试的HttpClient.GetAsync调用上停止

时间:2018-01-30 07:28:10

标签: c# asynchronous get dotnet-httpclient

我基于这个样本:

async-example-with-HttpClient

我有完全相同的代码,我正在测试中运行:

public async Task<IEnumerable<Stuff>> GetStuff()
{
    var r = await DownloadPage("http://stackoverflow.com");
}

static async Task<string> DownloadPage(string url)
{
    using (var client = new HttpClient())
    {
        using (var r = await client.GetAsync(new Uri(url)))
        {
            string result = await r.Content.ReadAsStringAsync();
            return result;
        }
    }
}

但它不起作用。调试器在等待client.GetAsync(new Uri(url))调用时停止。

没有抛出任何异常,Visual Studio输出窗口中没有任何内容。

我让Fiddler打开并清除了所有会话,我发现在进行GET调用时没有任何变化。

我没有任何事情可以解释为什么这不起作用。

  

关于为什么这不起作用以及我能做什么的任何想法?

更新

当从API调用时,这部分工作,而不是从我开始的xunit测试。但是,当从API调用时,不会收到来自后端的响应,并且调用者会一直等待:

enter image description here

如果我将代码完全保留在API端,那么不需要调用任何更深层的依赖项,一切正常。上下文切换必然会以某种方式引发问题。

0 个答案:

没有答案