无法调试 pid 11588 - 尝试设置进程的 DebugPort 或 ExceptionPort 但端口已经存在

Cannot debug pid 11588 - An attempt to set a process's DebugPort or ExceptionPort was made but port already exists

我的 windows 服务每隔一天就会崩溃。我的进程越来越大。所以我试图通过使用 CDB.exe 命令来查找内存泄漏。 [WinDBG 的命令行版本]

我正在尝试定期附加和分离进程,因此我在管理员模式下执行以下命令以打印出超过 1000 字节的顶级堆内存使用者。

  cdb -pn MyWindowsService.exe -c ".loadby sos clr; !dumpheap -stat -min 1000; qd"

我收到以下提示错误消息

An attempt to set a process's DebugPort or ExceptionPort was made, but a port already exists in the process or an attempt to set a file's CompletionPort made, but a port was already set in the file or an attempt to set an ALPC port's associated completion port was made, but it is already set."

它到底是什么意思?

我也试过使用 WinDbg

与Debug Diag规则有关系吗?如果是,我该如何解决?

这与 不同,因为如果我们继续打开 visual studio

,我将尝试解决特定问题

如果进程已经在调试中,通常会出现此问题。其他调试器可以是 Visual Studio、ProcDump 或其他工具。

我能够通过独立关闭 visual studio 和 运行 可执行文件来解决它。