關于VSCode的報錯問題:無法與“***”建立連接: XHR failed
- 問題描述
- 問題理解
- 解決方法
- 手動在本地下載安裝包,然后手動傳到服務器端
問題描述
是的,我又踩坑了,而且這個弄了好久,也重新裝了VSCode軟件,好像結果并不是自己想要的
這個時間參考大佬的教程,自己也簡單做了記錄
報錯日志
[09:51:46.053] Downloading VS Code server locally...
[09:51:46.542] Resolver error: Error: XHR failedat k.onerror (vscode-file://vscode-app/d:/software/coding/VScode/Install/Microsoft%20VS%20Code/resources/app/out/vs/workbench/workbench.desktop.main.js:95:2027)
問題理解
ssh_remote 出現 XHR failed 問題,說白了就是遠程主機的網絡有問題(測試環境:虛擬機linux)。
如果只是虛擬機的話,建議就是把 net 8 NAT 的 dhcp 租賃時長調到最大(linux中的靜態ip配不配無所謂,最終目的是能夠ping 通 internet),ip租賃時間太短的話,ip到期,即使能用,dhcp也會拒絕讓你使用。時間調長就省的每次自動分配到新 ip 就 連不上(頭大)。
XHR (XMLHttpRequest),使用 JavaScript 發起網絡請求時出現的錯誤,XHR 是一種用于在瀏覽器中發送異步 HTTP 請求的 API。
默認有從當地下載上傳到服務器的選項,和服務器沒有聯網也沒有關系,重新安裝vscode有時候也會解決這個問題。
解決方法
手動在本地下載安裝包,然后手動傳到服務器端
,另外一個暴力的方法就是重裝VSCode軟件
。
手動在本地下載安裝包,然后手動傳到服務器端
- 通過使用連接服務器的軟件(Xshell、MobaXterm)連接服務器,進入遠程服務器的Terminal。
- 在服務器端,進入
.vscode-server
目錄(這個目錄一般是會隱藏起來,故使用ll -a
命令查看到目錄),通過ll .vscode-server/bin
獲取commit id
(一大串隨機字符和數字);ll .vscode-server/bin/commit id
,下載不成功時文件夾下內容為:
注意
:有時候.vscode-server/bin
下面有很多個這樣的文件夾,可以通過查看內容判斷哪個文件夾需要手動下載文件。把需要手動下載的commit id記錄下來。 - 確定
commit id
后就需要手動下載包了,注意下面的COMMIT_ID要替換成自己在上一步得到的commit id。命令如下
穩定版下載鏈接:https://update.code.visualstudio.com/commit:COMMIT_ID/server-linux-x64/stable
內測版下載鏈接:https://update.code.visualstudio.com/commit:COMMIT_ID/server-linux-x64/insider
如我的穩定版鏈接就是:https://update.code.visualstudio.com/commit:2ccd690cbff1569e4a83d7c43d45101f817401dc/server-linux-x64/stable
- 下載后會得到一個vscode-server-linux-x64.tar.gz,將其通過sftp等方式傳到服務器上。
路徑:~/.vscode-server/bin/COMMIT_ID/vscode-server-linux-x64.tar.gz
- 把下載的文件傳到剛才那個 commit id 文件夾下,并用以下命令解壓:
cd .vscode-server/bin/$COMMIT_ID
tar -zxvf vscode-server-linux-x64.tar.gz
- 解壓后會出現一個目錄:vscode-server-linux-x64,把該目錄下的所有文件移動到commit id目錄下,解壓后的文件如下:
- 再次用 VS Code 登錄就成功了!