我有一个报告挂起在事件日志中的 .Net 应用程序。事件说“应用程序挂起”,没有可用的详细信息。
因此,我创建了一个使用 ClrMD 库的 C# 控制台应用程序。但需要注意的是,这个应用程序是作为 RemoteApp 发布的。当我尝试将 ClrMD 附加到用户的进程时,我收到此错误:Microsoft.Diagnostics.Runtime.ClrDiagnosticsException:无法附加到进程。错误 0。
这并不奇怪,因为我以管理员身份登录服务器,并且他们与不同的用户处于自己的 RDP 会话中。
因此,我决定冒充他们登录的用户,认为如果我以他们的身份运行我的 ClrMD 应用程序,它将有权访问该进程。这给了我一个不同的错误:Microsoft.Diagnostics.Runtime.ClrDiagnosticsException:无法附加到进程。错误 1008。
我似乎找不到任何关于 1008 意味着知道从这里去哪里的线索。我意识到我可能正在尝试做一些不可能的事情。
- 有没有人让 ClrMD 附加到另一个用户的进程?
- 如果没有,是否有可以附加到其他用户进程的调试工具?
- 如果没有,人们是否在生产中使用过 ClrMD,我如何知道应用程序已挂起以知道何时触发 ClrMD 转储?只是在另一个后台线程中监视 UI 线程?