将调试器附加到IIS实例

99

我在XP机器上安装了IIS 5.1和Visual Studio 2005。如何将我的调试器附加到IIS实例?

顺便说一句:我没有在运行的进程中看到IIS进程,或者我不知道该看什么。


1
对于从Google来的其他人:显然,在Visual Web Developer 2010 Express中无法实现此操作。我怀疑在Visual C# Express中也没有这个功能。 - Joel Peltonen
1
可能是重复的问题,参考如何将调试器附加到IIS而不是ASP.NET开发服务器? - Aaroninus
8个回答

167

在Visual Studio中:

  1. 从菜单栏点击“调试”
  2. 点击“附加到进程”
  3. 勾选左下角的“显示所有用户的进程”复选框
  4. 从进程列表中选中aspnet_wp.exew3p.exew3wp.exe
  5. 点击“附加”

1
谢谢,你碰巧知道如何在Vista Business和IIS 7中完成这个吗? - Mihai Lazar
35
请尝试查找 w3p.exe 进程并按照上述步骤附加它。 - jerjer
2
@Mihai:在Vista/Win7/2008/2008R2上,您还需要以管理员身份运行调试器才能执行此操作。 - Richard
6
运行命令C:\windows\system32\inetsrv\appcmd list wp可以列出应用程序池和它们的进程ID,以找到要附加的进程。参考链接:http://blogs.msdn.com/b/friis/archive/2009/10/22/which-w3wp-exe-pid-corresponds-to-which-application-pool.aspx。 - Nathan
1
如果您没有看到w3p.exe,可能是因为您没有运行您的网站。请尝试在浏览器上运行它。 - Wolf
显示剩余4条评论

19

为了澄清 Jimmie R. Houts 的回答...

如果您想要在 VS 和 IIS 中调试 Web 应用程序,可以执行以下操作:

  1. 在 IIS 中托管网站(虚拟目录等)。
  2. 然后在 VS2005 中执行以下操作:

    • 右键单击 Web 项目 → 属性 → 启动选项 → 使用自定义服务器 → 基本 URL → 输入作为 IIS 托管的站点地址。
    • F5 键,您将能够调试您的代码。

对于 VS 2008 也适用。


多年过去了,我可以确认这仍然适用于更新的IIS版本(目前使用Windows 10上的10.0.18362.1)。我在VS2010中执行了上述步骤,并能够远程调试而无需附加到服务。除此之外,找不到w2p.exe、w3wp.exe、aspnet_wp.exe、donet.exe或inetinfo.exe以进行附加。 - Feynt

15

我正在运行Windows 7,使用IIS版本7.5。我还需要勾选“从所有用户显示进程”和“在所有会话中显示进程”复选框,位于“附加到进程”对话框的底部。

此外,我将我的应用程序放置在特定的应用程序池中,这意味着您可以看到它标记为w3wp.exe。


6
ASP.NET进程的可能名称如下:
  • w3wp.exe是IIS 6.0及更高版本的名称。
  • aspnet_wp.exe是较早版本的IIS的名称。
  • iisexpress.exe是IISExpress的名称。
  • dotnet.exe是ASP.NET Core的名称。
  • inetinfo.exe是在进程内运行的旧版ASP应用程序的名称。
来源:查找ASP.NET进程的名称

5

IIS进程是aspnet_wp.exe。

事实上,当您的项目设置为使用IIS进行调试时,附加到aspnet_wp.exe进程就是VS所做的。


1
您还需要从控制面板>管理工具中打开Internet信息服务。右键单击相关的网站,点击主目录选项卡,选择配置按钮。这将打开一个新表单,其中有三个选项卡-点击调试选项卡并选择调试标志部分中的两个选项。这也是调试所必需的。

2
这仅用于调试ASP代码。ASP.NET,ISAPI和所有其他添加代码的方式不需要此功能。 - Richard

1
使用一个 Attach to IIS 插件 (VS2015, VS2017) 可以节省一些点击 - 特别是在处理一个托管在 IIS 上的站点生态系统时(例如一个前端和多个后端服务)。

0
如果您在任务管理器中看到进程(例如IIS工作进程(w3wp.exe))正在运行,但在“调试>附加到进程”列表中找不到该进程,则可能需要以管理员身份运行Visual Studio。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接