Я разрабатываю приложение, которое слушает порт 3000. По-видимому, есть экземпляр, который все еще слушает порт, потому что всякий раз, когда я его запускаю, он не может создать прослушиватель (C#, TcpListener, но это не имеет значения), потому что порт уже занят.
Теперь приложение не существует в Диспетчере задач, поэтому я попытался найти его PID и убить его, что привело к этому интересному результату:
C:Usersusername>netstat -o -n -a | findstr 0.0:3000
TCP 0.0.0.0:3000 0.0.0.0:0 LISTENING 3116
C:Usersusername>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, ничего не происходит, когда я пытаюсь закрыть подключение в этом инструменте.