Windows-Server-2012-R2
無法在 Windows Server 2012 上將基於 NodeJS 的 WebSocket 伺服器作為服務初始化
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的配置。這是我的工作配置:
要進一步調試您的問題,請啟用日誌記錄並查看日誌文件。我強烈懷疑您的應用程序在某處引發了異常。