1

我在同一个解决方案中有一个WebApi和MVC5应用程序。当我调试这些MVC5应用程序通过WebApi罚款,但它没有收到任何回应。在Visual Studio中调试WebApi不会返回MVC应用程序

使用与控制台应用程序完全相同的代码和数据而不是MVC5应用程序,然后响应恢复正常。

在mvc应用程序中不会返回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机器上。

===编辑

我火了MVC5和网络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); 
    } 
+0

我很困惑。你打算调试哪种方法? MVC5或WebAPi? – trevorc

+0

看到我的编辑到帖子 – Crusher

回答

0

我会尝试和猜测什么是怎么回事。看起来您正在对MVC5方法“DoMyPost”进行同步调用,然后尝试在PostAsJsonAsync中返回异步结果。

我想你应该仔细考虑你需要发生什么以及为什么。关于在MVC5中使用异步,这里有好的post

此外,here是对MVC5和WebApi之间差异的快速和肮脏的解释。见底部评论。

相关问题