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之間差異的快速和骯髒的解釋。見底部評論。

相關問題