Windows-Server-2012-R2

無法在 Windows Server 2012 上將基於 NodeJS 的 WebSocket 伺服器作為服務初始化

  • December 1, 2016

websocket 伺服器的基本 node.js 實現執行良好,就像通過命令行或計劃任務管理器啟動時一樣。

但是,在使用 nssm 作為服務安裝後,它拒絕啟動,但出現以下異常:

windows 無法在本地電腦上啟動服務…。該服務沒有返回錯誤。這可能是內部 Windows 錯誤或內部服務錯誤。

該軟體既不使用映射的網路驅動器,也不訪問系統資料庫,這兩者都暗示可能是此 SO question中此行為的原因。我已經追踪到問題根源於 websocket 伺服器組件,將其註釋掉可以使服務正常執行。

此外,在 Windows 7 和 Windows 10 環境中使用時,該過程執行良好。

當我錯誤地認為這個問題應該送出給 serverfault 社區時,請隨時將其移至超級使用者。

更新:

這是引用的程式碼元素:

實例化:

   let WebSocket = require('ws');
   this.server = new WebSocket.Server({
       port: this.port
   });

這是對https://github.com/websockets/ws上可用的 js 庫的呼叫

有趣的是,當我this.port用整數替換時,你的程式碼沒有給我帶來任何問題。否則它會返回相同的錯誤,因為應用程序顯然會返回 TypeError 異常。您說您的程式碼從命令行執行良好,但有些奇怪。

多說,我們需要詳細了解NSSM的配置。這是我的工作配置:

在此處輸入圖像描述

要進一步調試您的問題,請啟用日誌記錄並查看日誌文件。我強烈懷疑您的應用程序在某處引發了異常。

在此處輸入圖像描述

引用自:https://serverfault.com/questions/816856