Я разрабатываю приложение, которое прослушивает порт 3000. Очевидно, есть экземпляр, который все еще слушает порт, потому что всякий раз, когда я запускаю его, он не может создать прослушиватель (C #, TcpListener, но это не имеет значения), потому что порт уже приняты.
Теперь приложение не существует в диспетчере задач, поэтому я попытался найти его PID и убить его, что привело к интересному результату:
C:\Users\username>netstat -o -n -a | findstr 0.0:3000
TCP 0.0.0.0:3000 0.0.0.0:0 LISTENING 3116
C:\Users\username>taskkill /F /PID 3116
ERROR: The process "3116" not found.
Я не видел такого поведения раньше и подумал, что это достаточно интересно, чтобы увидеть, есть ли у кого-нибудь решение.
ОБНОВЛЕНИЕ: я запустил Process Explorer, выполнил поиск 3000 и нашел это:
<Non-existent Process>(3000): 5552
Я щелкнул правой кнопкой мыши по нему и выбрал «Закрыть ручку». Его больше нет в Process Explorer, но он все еще отображается в netstat и все еще не позволяет приложению запустить слушатель.
ОБНОВЛЕНИЕ 2: Найдено TCPView для Windows, которые показывают процесс как "<non-existent>"
. Как и в случае с CurrPorts, ничего не происходит, когда я пытаюсь закрыть соединение в этом инструменте.