【问题标题】:Get AppDomain for another .NET framework process为另一个 .NET 框架进程获取 AppDomain
【发布时间】:2011-05-06 07:04:20
【问题描述】:

我正在尝试为我的机器上运行的所有 .NET Framework 进程获取 AppDomain。关于如何做到这一点的任何建议?

【问题讨论】:

  • 您在这里提出了问题,或者您正在命令我们获取值?请在此处描述您的问题。
  • 我尝试了很多通过 C# 代码获取在 .Net Framework 中运行的所有应用程序域。我欢迎你的建议。提前谢谢!!!!
  • 这个 SO 问题可能会有所帮助:stackoverflow.com/q/5290842/945456

标签: .net debugging process ipc appdomain


【解决方案1】:

我不完全清楚您要做什么,但如果您想通过将 Visual Studio 附加到进程来枚举所有正在运行的 AppDomain,请参阅此链接: Jack Gudenkauf "Enumerating AppDomains"

同样,如果您想在运行时执行此操作(不使用 Visual Studio),那么您可能需要在程序中包含一个托管调试器,它允许您“附加”到另一个进程。 看一下托管调试器示例,它演示了一个用 C# 编写的调试器。然后它将允许您在目标应用程序进程中执行“扩展”,例如 Jack Gudenkauf 的文章中所做的那样。 CLR Managed Debugger (mdbg) Sample

【讨论】:

  • 嗨 Adam 是的,我想列举当前在 .Net Framework 中运行的 AppDomain。通过 VS C#,我可以获取在单个应用程序中运行的所有 AppDomain,但不能从在 .Net Framework 中运行的所有应用程序中获取。
  • 我建议您尝试我提到的方法,使用托管调试器源代码。它将允许您“连接”到任何 .net 进程,并枚举 AppDomains。
  • 有没有什么好的方法可以通过进程枚举来查看哪些是.NET?这将使这个答案更好;)
  • @Jeff - 看看这篇文章stackoverflow.com/questions/943453/… - Shafqat Ahmed 的回答提供了一个代码 sn-p 应该会有所帮助。您还可以按照 Daniel Fortunov 对这个问题的回答中的描述对 'clrver' 实用程序进行外壳:stackoverflow.com/questions/4336889/… FYI - 您的评论有点过时('是否加载 CLR' 与实际获得对 AppDomain 的引用不同) - 你应该将其作为新问题发布。
  • 对,我想我们可能有误会。您的答案讨论了附加到获取AppDomain 的过程。我只是觉得更完整的答案将包括如何找到您需要附加到哪些进程(即“CLR 加载)。再说一次,我可能完全误解了这个过程;)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多