C# 将异步请求发送到node.js服务器后卡住

C# 将异步请求发送到node.js服务器后卡住,c#,asp.net-web-api,async-await,sendasynchronousrequest,C#,Asp.net Web Api,Async Await,Sendasynchronousrequest,我已经在控制台应用程序中尝试过了 public async Task<string> Getsmth(string a, string b, string c, HttpClient client) { string str = "call to node.js" var response = await client.GetStringAsync(str); return response; } 在同步调用它之后(没有异步/等待),一切正常。怎么了?!如何使其异步工作?尝试更改a

我已经在控制台应用程序中尝试过了

public async Task<string> Getsmth(string a, string b, string c, HttpClient client)
{
string str = "call to node.js"
var response = await client.GetStringAsync(str);
return response;
}

在同步调用它之后(没有异步/等待),一切正常。怎么了?!如何使其异步工作?

尝试更改api操作以返回
任务,然后等待
Getsmth
,如下所示:

[Route("api/Getsmth/{a}/{b}/{c}")]
public async Task<IHttpActionResult> Get(string a, string b, string c)
{
   HttpClient client = new HttpClient();
   var r = await Getsmth(a, b, c, client);
   return Ok(r);
 }

当您说您在没有异步/等待的情况下调用它时,您仍然返回任务吗?
[Route("api/Getsmth/{a}/{b}/{c}")]
public async Task<IHttpActionResult> Get(string a, string b, string c)
{
   HttpClient client = new HttpClient();
   var r = await Getsmth(a, b, c, client);
   return Ok(r);
 }
[Route("api/Getsmth/{a}/{b}/{c}")]
public async Task<string> Get(string a, string b, string c)
{
   HttpClient client = new HttpClient();
   var r = await Getsmth(a, b, c, client);
   return r;
 }