我有一個(gè)使用Asp.Net Boilerplate的 Asp.Net Core (2.1) 網(wǎng)站。我正在嘗試使用 進(jìn)行 API 調(diào)用HttpClient,該調(diào)用在本地工作,但在部署到 IIS 時(shí)會(huì)引發(fā)錯(cuò)誤。我創(chuàng)建了一個(gè)TypedClientpublic class FormsHttpClient : IFormsHttpClient{ private const string url = "my_url:3001/"; private readonly HttpClient _client; public FormsHttpClient(HttpClient httpClient) { httpClient.BaseAddress = new Uri(url); _client = httpClient; } ....}在我的startup.cs文件中,我添加了:services.AddHttpClient<IFormsHttpClient, FormsHttpClient>();我部署時(shí)遇到的錯(cuò)誤:ERROR 2018-12-12 18:30:29,509 [11] Mvc.ExceptionHandling.AbpExceptionFilter - 連接嘗試失敗,因?yàn)檫B接方在一段時(shí)間后沒(méi)有正確響應(yīng),或者建立連接失敗,因?yàn)檫B接的主機(jī)未能響應(yīng)系統(tǒng).Net.Http.HttpRequestException:連接嘗試失敗,因?yàn)檫B接方一段時(shí)間后沒(méi)有正確響應(yīng),或者連接的主機(jī)沒(méi)有響應(yīng),建立連接失敗---> System.Net.Sockets.SocketException:連接嘗試失敗,因?yàn)檫B接方在一段時(shí)間后沒(méi)有正確響應(yīng),或者連接失敗,因?yàn)檫B接的主機(jī)在 System.Net.Http.ConnectHelper.ConnectAsync(String host, Int32 port,CancellationToken cancelToken) --- 內(nèi)部異常堆棧跟蹤結(jié)束 ---網(wǎng)絡(luò)調(diào)用通常需要 1800 毫秒才能完成,它似乎在 21000 毫秒左右超時(shí)。我遇到了代碼AppContext.SetSwitch("System.Net.Http.useSocketsHttpHandler", false);,以為我不確定把它放在哪里,我把它扔到了我的startup.cs類的構(gòu)造函數(shù)中,但它似乎沒(méi)有任何效果。我還缺少什么嗎?E:調(diào)用api的代碼在JS中: app.forms.token = { generate: function () { Formio.logout(); abp.services.app.forms.generateFormToken().done(function (e) { Formio.setToken(e); }); }, clear: function () { Formio.logout(); }}
1 回答

慕容3067478
TA貢獻(xiàn)1773條經(jīng)驗(yàn) 獲得超3個(gè)贊
由于我正在與同一臺(tái)機(jī)器但不同的端口進(jìn)行通信,因此我將服務(wù)器代碼中的公共 IP 更改為內(nèi)部 IP,我的問(wèn)題得到了解決。
我已經(jīng)將在服務(wù)器代碼中使用內(nèi)部 IP 和在客戶端代碼中使用公共 IP 作為經(jīng)驗(yàn)法則。如果這是不好的做法,請(qǐng)告訴我。
- 1 回答
- 0 關(guān)注
- 402 瀏覽
添加回答
舉報(bào)
0/150
提交
取消