C# 调试器只是在测试的HttpClient.GetAsync调用上停止
我以这个样本为基础: 我有完全相同的代码,我正在测试中运行:C# 调试器只是在测试的HttpClient.GetAsync调用上停止,c#,asynchronous,get,dotnet-httpclient,C#,Asynchronous,Get,Dotnet 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 HttpC
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;
}
}
}
公共异步任务GetStuff()
{
var r=等待下载页(“http://stackoverflow.com");
}
静态异步任务下载页面(字符串url)
{
使用(var client=new HttpClient())
{
使用(var r=await client.GetAsync(新Uri(url)))
{
字符串结果=wait r.Content.ReadAsStringAsync();
返回结果;
}
}
}
但它不起作用。调试器只是在waitclient.GetAsync(新Uri(url))
调用时停止
没有引发异常,VisualStudio输出窗口中没有任何内容
我让Fiddler打开,所有会话都已清除,我看不到在执行GET呼叫时有任何更改
我没什么要说的为什么这不管用
你知道为什么这样不行吗?我能做什么
更新
当从API调用时,这在一定程度上起作用,而不是从我开始使用的xunit测试。但是,当从API调用时,不会收到来自后端的响应,调用方会一直等待:
如果我将代码完全保留在API端,这样就不会调用任何更深层次的依赖项,那么一切都会正常工作。上下文切换一定是造成问题的原因。这段代码是在asp.net进程中吗?在正常的C语言中,它可以工作-我已经在10秒前测试了您的确切代码。您能显示调用这些方法的asp.net代码吗。我猜您正在某处进行同步调用。它是从测试调用的类库中的代码。但最终它将从WebAPI2中调用。@Twometer:我刚刚直接从API中尝试过,它在那里也可以工作。那么为什么不从测试中。。。