Назад | Перейти на главную страницу

Невозможно запустить сервер WebSocket на основе NodeJS как службу в Windows Server 2012

Базовая реализация node.js сервера websocket работает нормально, как при запуске через командную строку или запланированный диспетчер задач.

Однако после установки в качестве службы с использованием 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

Забавно, ваш код не вызывает у меня проблем, когда я заменяю this.port с целым числом. В противном случае он возвращает ту же ошибку, поскольку приложение явно возвращает исключение TypeError. Вы говорите, что ваш код отлично работает из командной строки, но что-то не так.

Чтобы сказать больше, нам нужно подробно знать конфигурацию NSSM. Это моя рабочая конфигурация:

Для дальнейшей отладки проблемы включите ведение журнала и просмотрите файлы журнала. Я сильно подозреваю, что ваше приложение где-то выдает исключение.