簡體   English   中英

在Visual Studio中調試WebApi對MVC應用沒有響應

[英]Debugging WebApi in Visual Studio returns no response to MVC app

我在同一解決方案中有一個WebApi和MVC5應用程序。 當我調試這些時,MVC5應用程序會調用WebApi,但是它沒有收到任何響應。

通過控制台應用程序而不是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和Web-api應用程序,我調試了MVC 5應用程序,並看到它通過上面概述的代碼進行了調用。在Web-api中命中了斷點,我可以逐步執行,直到響應為產生。
然后,MVC 5應用程序處於等待狀態,並且從未出現任何響應。

我已經用控制台應用程序替換了MVC5應用程序,它收到了很好的響應。

謝謝

==修復

將代碼更改為以下可解決此問題

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);
    }

我將嘗試猜測這里發生了什么。 看來您正在對MVC5方法“ DoMyPost”進行同步調用,然后嘗試在PostAsJsonAsync中返回異步結果。

我認為您應該仔細考慮發生什么以及為什么發生。 這是有關在MVC5中使用異步的好帖子

另外, 是對MVC5和WebApi之間差異的快速而骯臟的解釋。 請參閱底部注釋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM