如何自动将VS附加到另一个进程进行调试?

时间:2011-05-24 04:24:19

标签: asp.net visual-studio debugging iis

我正在调试部署在IIS 7.5(VS 2010 / Windows 7 x64)上的ASP.NET应用程序。在我进行更改后,我必须将其部署到IIS文件夹,然后执行以下操作(您们中的任何人都应该知道,我只是列出来证明它们是多么无聊和耗时):

  • 单击“调试”菜单,选择“附加到进程”
  • 从列表中选择“在所有会话中显示流程”
  • 选择正确的w3wp.exe进程
  • 点击附件
  • 再次点击附件
好吧,这是不必要的工作。由于我们的系统架构师,这是唯一的方法,我们可以通过F5按钮直接调试,但我想知道如果有一个解决方法,所以我可以通过点击或快捷键来完成所有这些事情。

非常感谢你。

2 个答案:

答案 0 :(得分:7)

http://blog.lavablast.com/post/2008/01/11/Attach-to-Process-with-one-shortcut.aspx

使用以下内容在visual studio中创建一个宏:

Option Strict Off
Option Explicit Off
Imports System
Imports EnvDTE
Imports EnvDTE80
Imports EnvDTE90
Imports System.Diagnostics
Imports System.Security.Principal

Public Module RecordingModule
    Sub AttachToAspNET()
        Try
            Dim dbg2 As EnvDTE80.Debugger2 = DTE.Debugger
            Dim trans As EnvDTE80.Transport = dbg2.Transports.Item("Default")
            Dim compName As String = WindowsIdentity.GetCurrent().Name
            compName = compName.Substring(0, compName.IndexOf("\"))
            Dim proc2 As EnvDTE80.Process2 = dbg2.GetProcesses(trans, compName).Item("w3wp.exe")
            proc2.Attach2(dbgeng)
        Catch ex As System.Exception
            MsgBox(ex.Message)
        End Try
    End Sub
End Module 

将w3wp.exe更改为aspnet,如果这就是你想要的。然后进入密钥快捷方式,然后绑定一个快捷方式来运行该宏。

答案 1 :(得分:3)

为什么不直接转到项目属性并选择“使用本地IIS Web服务器”。

enter image description here

如果这是远程服务器,您也可以这样做:Using Visual Studio 2008 with IIS 7
虽然这篇文章是关于VS2008的,但这个概念在2010年是相同的。