簡體   English   中英

Bluemix NodeJS ENOTFOUND

[英]Bluemix NodeJS ENOTFOUND

我有一個與服務器通信的bluemix節點js應用程序。 我有測試和生產環境。 在開發環境中,我們與測試服務器進行通信,並且出現節點js錯誤。

當我將服務器URL更改為生產服務器時,一切正常。

當我在localhost上運行該應用程序並連接到測試服務器時,一切都還好。

因此,我的問題僅存在於與我的公司測試服務器通信的bluemix環境中。 錯誤是:

{
  "code": "ENOTFOUND",
  "errno": "ENOTFOUND",
  "syscall": "getaddrinfo",
  "hostname": "www.xxxxxxxxx.cz"
} 

錯誤的主機名被屏蔽。

從例外來看,我認為失敗的代碼正在進行dns查找。 我編寫了此示例代碼,發現錯誤相似或相同。

var dns = require('dns');
dns.lookup('non-existent server', function(e, a) {
 console.log(e);
});

輸出為:

bash-4.1$ node h.js
{ [Error: getaddrinfo ENOTFOUND non-existent server]
  code: 'ENOTFOUND',
  errno: 'ENOTFOUND',
  syscall: 'getaddrinfo',
  hostname: 'non-existent server' }
bash-4.1$

問題確定步驟為:

  1. 從具有出站訪問權限的計算機ping您的目標服務器-確保該服務器存在。 如果不是,請解決該問題。
  2. 登錄到Bluemix調試控制台
  3. ping您的目標服務器。 如果它沒有響應,則在bluemix和目標之間有隔離牆。 如果響應,請嘗試此測試用例。 如果那也可行,我們將不得不進一步調試,我將為您提供進一步的幫助。

Bluemix調試控制台是通過以下方式獲得的:

  1. 導出值為“ shell”的環境變量“ BLUEMIX_APP_MGMT_ENABLE”
  2. 重新上載該應用程序。
  3. 使用您的Bluemix用戶憑證在瀏覽器中通過https:// your-app-url / bluemix-debug / shell /登錄到Web Shell。

希望這可以幫助。

暫無
暫無

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

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