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

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

Однако после установки в качестве службы с использованием nssm он отказывается запускаться за следующим исключением:

окна не могут запустить службу ... на локальном компьютере. Сервис не вернул ошибку. Это может быть внутренняя ошибка Windows или внутренняя ошибка службы.

Программное обеспечение не использует ни подключенные сетевые диски, ни доступ к реестру, оба из которых подразумеваются как возможные причины такого поведения в этом вопросе SO . Я проследил, чтобы проблема коренится в серверном компоненте websocket, и его комментарии позволяют нормально запустить службу.

Кроме того, этот процесс отлично работает при использовании в средах Windows 7 и Windows 10.

Когда я ошибаюсь, думая, что эти вопросы следует адресовать сообществу serverfault, смело передавайте его суперпользователю.

Обновление:

Вот элемент кода, на который имеется ссылка:

Создание экземпляра:

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

Это вызов библиотеки js, доступной на https://github.com/websockets/ws

0
задан 20 March 2017 в 12:16
1 ответ

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

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

enter image description here

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

enter image description here

1
ответ дан 4 December 2019 в 16:26

Теги

Похожие вопросы