我基于这个样本:
我有完全相同的代码,我正在测试中运行:
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调用时,不会收到来自后端的响应,并且调用者会一直等待:
如果我将代码完全保留在API端,那么不需要调用任何更深层的依赖项,一切正常。上下文切换必然会以某种方式引发问题。