【问题标题】:How can I find out what debugger is attached to w3p.exe如何找出 w3p.exe 附加的调试器
【发布时间】:2026-01-23 01:25:01
【问题描述】:

我正在尝试在 VS 2010 中的类 ASP 项目上设置调试,并尝试将其调试器附加到 w3p.exe。我使用的是 Windows 7 64 位和 IIS 7.5。我之前在另一台机器上成功使用过这种方法几次。

但是,我发现这一次我无法附加调试器。它的意思是:

Unable to attach to the process. A debugger is already attached.

但我不知道它可能是什么。我怎样才能确定这一点?或者它可能是别的东西?我重新启动了我的电脑,但还看不到任何运行的迹象,看起来像是调试器。

设置

如果有帮助,这里是我用来设置环境的步骤,我在之前的成功尝试中记录了这些步骤:

  • 创建了新的空 Visual Basic .NET Web(最好在 C:\inetpub\wwwroot\ 中创建,否则在加载站点时会出现安全/ACL 问题)。
  • 已将站点文件夹的内容复制到项目文件夹。
  • 在解决方案资源管理器中,选择显示所有不在项目中的文件。选择所有文件并右键单击并选择:“包含在项目中”。
  • 在项目属性下 -> Web -> 设置为使用 IIS 并以 URL http://mysite.local 开头
  • 在 hosts 文件中将 mysite.local 指向 127.0.0.1
  • 在 IIS 设置中,新网站指向主机头为 mysite.local 的文件
  • 转到应用程序池,确保 mysite.local 设置为经典模式。没有托管代码。
  • 在 ASP 下 -> 启用父路径并确保启用了服务器端调试
  • 确保在错误页面下显示完整的详细信息。

在 Visual Studio 2010 中调试

  • 以管理员身份运行 VS 2010
  • 在您的项目中,使用 Ctrl+F5 无需调试即可运行
  • 现在,在菜单中转到 Debug -> Attach to Process -- 这是我失败的地方
  • 勾选显示所有用户的进程并显示所有会话中的进程
  • 确保将其设置为自动确定要调试的代码类型
  • 查看列表中的 w3p.exe 进程,并根据 IIS POOL\站点名称,选择正确的进程。
  • 设置断点并刷新 -- 正常调试。

【问题讨论】:

  • 你解决过这个问题吗?我也有同样的问题!

标签: visual-studio-2010 debugging iis-7 asp-classic


【解决方案1】:

您的机器上是否正在运行一些调试诊断工具。有时我遇到了同样的问题,调试诊断工具正在调试我的 w3p 进程。

【讨论】:

  • 我确实读过 - 但我找不到任何迹象。它是 Windows 自带的,还是需要安装?我从来没有安装过。
  • 好的,是的。我不认为我有这个,因为它是可下载的。