我在同一个解决方案中有一个WebApi和MVC5应用程序。当我调试这些MVC5应用程序调用WebApi时,它没有收到响应。
使用完全相同的代码和数据与控制台应用程序而不是MVC5应用程序,然后响应恢复正常。
在mvc app中,不会返回任何HTTP响应。我调试了代码,调用进入了web-api。
我正在使用的代码类似于下面的代码,我正在调用DoMyPost()。没有响应来自等待HttpClient.PostAsJsonAsync(url,model);
public MyModel DoMyPost(ModelIN model)
{
return PostAsJsonAsync("url", model).Result;
}
protected async Task<MyModel> PostAsJsonAsync(string url, ModelIN model)
{
var response = await HttpClient.PostAsJsonAsync(url, model);
return await ReadMyModel(response);
}
有什么可能出错的想法?
我在Windows 8机器上。
=== EDIT
我启动了MVC5和web-api应用程序 我调试MVC 5应用程序并看到它通过我上面概述的代码进行调用 断点在web-api中被击中,我可以一步一步直到产生响应 然后MVC 5应用程序等待,似乎永远不会得到任何响应。
我已经使用控制台应用程序替换了MVC5应用程序,它收到的回复很好。
谢谢
== THE FIX
将代码更改为以下修复了问题
public MyModel DoMyPost(ModelIN model)
{
var response = await HttpClient.PostAsJsonAsync(url, model).Result;
return ReadMyModel(response).Result;
}
protected async Task<MyModel> PostAsJsonAsync(string url, ModelIN model)
{
var response = await HttpClient.PostAsJsonAsync(url, model);
return await ReadMyModel(response);
}