Базовый узел. 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
Забавно, ваш код не вызывает у меня проблем, когда я заменяю this.port
целым числом. В противном случае он возвращает ту же ошибку, поскольку приложение явно возвращает исключение TypeError. Вы говорите, что ваш код работает нормально из командной строки, но что-то странно.
Чтобы сказать больше, нам нужно знать конфигурацию NSSM в деталях. Это моя рабочая конфигурация:
Для дальнейшей отладки вашей проблемы включите ведение журнала и просмотрите файлы журнала. Я сильно подозреваю, что ваше приложение где-то выдает исключение.