簡體   English   中英

從另一個 locahost.Net Core API 調用 locahost.Net Core API 時出現錯誤網關(502)錯誤

[英]Bad Gateway (502) error while calling locahost .Net Core API from another locahost .Net Core API

我創建了兩個 Web 服務:第一個是用於 RESTfull HTTP 服務的 ASP.Net Core; 第二個是帶有 MVC 的 ASP.Net Core。 第一個具有在數據庫中存儲一些數據的 API。 第二個具有調用第一個服務的 API 的視圖。

這是調用第一個服務的第二個服務中的代碼:

    public async Task<IEnumerable<T>> GetAllAsync(string url)
    {
        var request = new HttpRequestMessage(HttpMethod.Get, url);

        var client = _httpClient.CreateClient();

        HttpResponseMessage response = await client.SendAsync(request);
        if (response.StatusCode == System.Net.HttpStatusCode.OK)
        {
            var jsonString = await response.Content.ReadAsStringAsync();
            return JsonConvert.DeserializeObject<IEnumerable<T>>(jsonString);
        }

        return null;
    }

以下是我嘗試過的幾件事:

一個。 從 Postman 調用第一個服務就可以了。

灣。 在相同的代碼中調用其他網站,例如https://www.google.com可以正常工作。

c。 港口是開放的。

d。 我也試過關閉 Windows 防火牆。

e. 沒有安裝任何防病毒或防火牆。

F。 這兩項服務都在 IIS Express 中運行。

G。 嘗試了不同的瀏覽器來啟動服務。

H。 URL 是正確的。 沒有錯字或任何其他錯誤。

誰能告訴我這里有什么問題? 我可以使用 Postman 調用 API。 但是,當我在代碼中調用它時,我會得到 BadGateway (原因是cannotConnect )。 也不例外。

謝謝,

問候,

巴拉特

允許 CORS 來自調用者 API 的 URL 進入源 API

可能是mvc請求數據時連接超時造成的,一個進程請求需要超過2分鍾才能完成。 您可以在 iis 中增加超時。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
 <system.webServer>
  <handlers>
    <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" 
       resourceType="Unspecified"/>
  </handlers>
  <aspNetCore requestTimeout="00:20:00"  processPath="%LAUNCHER_PATH%" 
      arguments="%LAUNCHER_ARGS%" stdoutLogEnabled="false" 
     stdoutLogFile=".\logs\stdout" forwardWindowsAuthToken="false"/>
 </system.webServer>
</configuration>

暫無
暫無

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

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