我们有几个生产 WCF 服务无法启动,因为它们的端口显然被另一个进程占用。我执行了 netstat -ano 并找到了使用这些端口的 PID,它们都处于 LISTEN 状态。托管在同一进程中的端点/服务的端口都具有相同的 PID,因此检查无误。
问题是,我在任务管理器中看不到任何这些 PID。尝试 -b 选项时,netstat 报告该进程为 [System]。它报告了正在运行的服务的正确进程名称,但没有报告这些端口的正确进程名称。
我怀疑我们服务的旧实例可能还在运行……重启服务器可能会解决这个问题,但我更愿意在采取行动之前了解发生了什么。不幸的是,我不能在生产环境中安装 Process Explorer。
我还有哪些其他选项可以找到具有这些 PID 的进程的名称?抱歉,这可能是一个菜鸟问题,但我不是系统管理员 :)
谢谢迈克尔
答案1
您可以使用 SysInternals 的TCP查看器;它不需要任何安装,您可以直接运行它而不必安装任何东西(顺便说一下,这对于 Process Explorer 也是如此)。
TCPView 还可以强制关闭连接和监听套接字。
答案2
可能提供一些额外“提示”的方法是针对这些端口进行 telnet,以查看正在运行的进程是否通过某些连接横幅“放弃自己”。