鍍金池/ 問(wèn)答/C#  Linux  HTML/ C#使用HTTP協(xié)議調(diào)用接口,經(jīng)常出現(xiàn)TCP第一次握手發(fā)送SYN不成功,可能什么

C#使用HTTP協(xié)議調(diào)用接口,經(jīng)常出現(xiàn)TCP第一次握手發(fā)送SYN不成功,可能什么原因?

題目描述

IIS站點(diǎn)下使用Restsharp.dll通過(guò)HTTP協(xié)議調(diào)用遠(yuǎn)程接口,時(shí)常發(fā)現(xiàn)調(diào)用失敗,System.Net返回TCP錯(cuò)誤,代碼10060.

通過(guò)安裝Wireshark抓包發(fā)現(xiàn),Client連接服務(wù)器的TCP第一次握手,發(fā)送SYN失敗,導(dǎo)致多次重傳,仍然失敗后,沒(méi)有后續(xù)的HTTP請(qǐng)求了。

wireshark抓包如圖:

圖片描述

嘗試辦法

我想的是網(wǎng)絡(luò)請(qǐng)求失敗,原因無(wú)非是客戶端未能成功發(fā)出網(wǎng)絡(luò)請(qǐng)求,或者服務(wù)端未能響應(yīng)。首先懷疑是客戶端未能成功發(fā)送請(qǐng)求,故做另外兩項(xiàng)測(cè)試如下:

  1. 同樣功能在另外的客戶端上,接的第三方的API接口,使用是正常的,并沒(méi)有出現(xiàn)該錯(cuò)誤。(我認(rèn)為此項(xiàng)可以說(shuō)明客戶端代碼無(wú)誤)
  2. 另外編寫(xiě)一個(gè)單獨(dú)的接口調(diào)用程序,放到該服務(wù)器上跑,也發(fā)現(xiàn)同樣的問(wèn)題,還是TCP第一次的SYN發(fā)送失?。?/li>

疑問(wèn)

那么這種情況下,是因?yàn)榭蛻舳谁h(huán)境引起,還是說(shuō)服務(wù)器未能響應(yīng)導(dǎo)致?請(qǐng)有經(jīng)驗(yàn)的朋友支招,謝謝!

回答
編輯回答
涼心人

多半是接口服務(wù)器的問(wèn)題。

2018年7月5日 18:06