Node.js, express.js, Windows Server и EADDRINUSE

У меня есть настройка сервера node.js express.js. Это действительно просто, просто обслуживает статическую html-страницу и прослушивает порт 17500:

const path = require('path');
const express = require('express');
const app = express();
const port = 17500;

const index = path.join(__dirname, 'index.html');

console.log('Current NodeJs Version:', process.version);
console.log('Index.html:', index);

app.use((req, res) => res.sendFile(index));

app.listen(port, function (err) {
  if (err){
    console.error(err.message);
    process.exit();
  }else{
    console.log('Listening on port', port);
  }
});

Он работал нормально, пока не был принудительно закрыт. Теперь всякий раз, когда я пытаюсь запустить его, он говорит Error: listen EADDRINUSE :::17500. Узел не работает, а netstat -an не показывает никаких подключений на 17500. Еще более странно, если я изменю порт на тот, который, как я знаю, не используется (например, 21000), он говорит Error: listen EADDRINUSE :::21000.

Кто-нибудь знает, что не так? Имейте в виду, что я не должен перезапускать сервер!


person Mardoxx    schedule 10.02.2017    source источник
comment
Я обнаружил, что в фоновом режиме работают другие экземпляры узлов-призраков, которые используют этот порт, как будто они не совсем правильно завершили работу!   -  person Callum Linington    schedule 10.02.2017
comment
Как я могу найти их, список задач/Get-Process/taskmgr.exe не показывает ничего, связанного с узлом или моим приложением :(!   -  person Mardoxx    schedule 10.02.2017
comment
Да, я делаю ctrl + shift + esc и использую диспетчер задач   -  person Callum Linington    schedule 10.02.2017
comment
Там нет ссылок на узел, вот в чем беда.. хм!   -  person Mardoxx    schedule 10.02.2017
comment
закрывает процесс, который был оставлен в живых   -  person Edgar Cortes    schedule 12.07.2018