我正在编写一个宏来自动从Visual Studio附加到IIS工作进程(w3wp.exe,Windows Server 2K8)的过程。问题是我经常在任何给定的时间运行两个应用程序池,一个在x64模式下,一个在x86模式下。这意味着在任何给定时间都有两个名为w3wp.exe的进程在运行,唯一区分它们的方法就是它们运行的模式。当我使用“附加到进程”对话框时,有一个“类型”列显示该信息,这样我就知道要附加到哪个w3wp.exe,但我不知道如何在宏中获取该信息。
根据这里的信息,我可以得出以下结论:
Function AttachToProcess(ByVal processName As String) As Boolean
Dim proc As EnvDTE.Process
Dim attached As Boolean
For Each proc In DTE.Debugger.LocalProcesses
If proc.Name = "w3wp.exe" Then
proc.Attach()
attached = True
End If
Next
Return attached
End Function
但有一半时间这只是抓住了错误的过程。我需要第二个if语句来检查进程的模式/类型。我已经尽我所能用QuickWatch快速浏览了所有的课程,但还不能确定信息在哪里。有人能帮忙吗?谢谢!