2

可以理解,关闭进程正在侦听的端口可能会导致进程无用,因此最好终止进程。但是,我有一个场景,当它试图关闭端口时进程挂起。除了重新启动服务器之外,没有任何东西可以终止该过程。来自内存转储的堆栈跟踪是:

0012f230 7c82845c [NDirectMethodFrameStandalone: 0012f230] System.Net.UnsafeNclNativeMethods+SafeNetHandles.CloseHandle(IntPtr)
0012f240 7a567a78 System.Net.SafeCloseHandle.ReleaseHandle()
0012f24c 7928faa2 System.Runtime.InteropServices.CriticalHandle.Cleanup()
0012f25c 7928fa45 System.Runtime.InteropServices.CriticalHandle.Dispose(Boolean)
0012f260 7a59d907 System.Net.HttpListener.Stop()

直接杀死进程而不尝试这种优雅的关闭似乎并没有更好的效果(同样的结果——进程挂起并且无法终止)。

问题是:在这种情况下,有没有办法从进程外部强制关闭端口?

我读过的所有内容都表明关闭端口的最佳方法是终止监听它的进程,但这显然不适用于我的情况。

4

0 回答 0