Visual Studio 附加到进程调试

Visual Studio附加到进程调试
Visual Studio远程调试

Visual Studio 附加到进程调试

一般的调试,无需多说。但是对于服务开发:如何在消费端调用服务之后,进入Visual Studio中的断点,就是一个问题
这个问题可以用 Visual Studio 调试 下的 附加到进程 解决,步骤如下:

  1. 使用管理员身份运行Visual Studio
  2. 使用 Debug 方式发布服务
  3. 将服务部署到本地 IIS 并在浏览器中浏览一次
  4. 在代码中打好断点
  5. 将解决方案配置为 Debug ,选择 调试 下的 附加到进程
  6. 勾选 显示所有用户进程刷新
  7. 选择对应的 w3wp.exe 进程,点击 附加

注意:
如果存在多个IIS站点则会有多个 w3wp.exe 进程,可以根据可用进程的 用户名 进行区分,或者暂时停用其他站点
如果找不到 w3wp.exe 进程,则可能是未在浏览器中浏览站点
如果无法进入断点则可能是以下原因
1.没有使用 Debug 方式发布
2.没有使用 Debug 方式调试
3.对代码做过修改而没有重新发布本地服务
4.附加到了不正确的进程


Visual Studio 远程调试

当然在开发阶段,我们可以附加到进程调试,要是站点部署到远程服务器上之后呢,我们能不能附加到进程调试?
答案是肯定的,不过需要借助Visual Studio远程调试来实现,步骤如下:

  1. 右键Visual Studio快捷方式 点击打开文件所在位置,进入Visual Studio安装目录
  2. 找到 Remote Debugger 目录,根据服务器的系统类型,选择 Remote Debugger 文件夹下的对应文件夹复制到服务器上,存放位置不限
  3. 在服务器上以管理员身份运行目录下的 msvsmon.exe
  4. 在打开的窗口中点击 工具 选择 选项 ,在弹出的对话框中设置好端口号并将 身份验证模式 改为 Windows 身份验证 点击确定
  5. 使用管理员身份运行 Visual Studio
  6. 使用 Debug 方式发布服务
  7. 将服务部署到服务器 IIS 并在浏览器中浏览一次
  8. 在代码中打好断点
  9. 将解决方案配置为 Debug ,选择 调试 下的 附加到进程
  10. 连接和目标 输入框中输入服务器的IP和端口号,点击 查找 ,在新弹出的窗口中,点开找到的服务器点击 选择 按钮,这时会弹出身份验证窗口,输入服务器的用户名和密码进行验证
  11. 勾选 显示所有用户进程刷新
  12. 选择对应的 w3wp.exe 进程,点击 附加

注意:
同Visual Studio附加到进程调试