无法在 Windows Server 2012 上将基于 NodeJS 的 WebSocket 服务器初始化为服务

无法在 Windows Server 2012 上将基于 NodeJS 的 WebSocket 服务器初始化为服务

通过命令行或计划任务管理器启动时,websocket 服务器的基本 node.js 实现运行良好。

但是,使用 nssm 安装为服务后,它拒绝启动,并出现以下异常:

windows 无法在本地计算机上启动服务...。服务未返回错误。这可能是 Windows 内部错误或内部服务错误。

该软件既不使用映射的网络驱动器,也不访问注册表,这两者都可能是导致此行为的原因这个问题。我已经追踪到问题根源在于 websocket 服务器组件,将其注释掉可以使服务正常运行。

此外,该过程在 Windows 7 和 Windows 10 环境中使用时运行良好。

当我错误地认为这些问题应该向 serverfault 社区提出时,请随意将其移交给超级用户。

更新:

这是引用的代码元素:

实例:

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

这是对 js 库的调用https://github.com/websockets/ws

答案1

有趣的是,当我用整数替换时,您的代码没有出现任何问题this.port。否则它会返回相同的错误,因为应用程序显然会返回 TypeError 异常。您说您的代码从命令行运行良好,但有些奇怪。

说得更详细一些,我们需要详细了解 NSSM 配置。这是我的工作配置:

在此处输入图片描述

要进一步调试您的问题,请启用日志记录并查看日志文件。我强烈怀疑您的应用程序在某处引发了异常。

在此处输入图片描述

相关内容