将调试器附加到IIS实例


81

我在XP计算机上安装了IIS 5.1,在Visual Studio 2005中安装了IIS 5.1。如何将调试器附加到IIS实例。

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


1
对于其他来自Google的用户:显然,这在Visual Web Developer 2010 Express中不可行。我怀疑它在Visual C#Express中也不存在。
乔尔·佩尔顿

Answers:


131

在Visual Studio中:

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

1
谢谢,您是否有机会在Vista Business和IIS 7中做到这一点?
Mihai Lazar

35
尝试寻找w3p.exe进程并使用上述步骤将其附加
jerjer 2010年

2
@Mihai:在Vista / Win7 / 2008 / 2008R2上,您还需要以管理员身份运行调试器才能执行此操作。
理查德

1
@Rcihard另一件事是,当有多个ApplicationDomains各自启动另一个w3wp.exe实例时,我需要找出当前正在运行我的代码的那个实例:)
Mihai Lazar11

5
@MihaiLazar运行C:\windows\system32\inetsrv\appcmd list wp以列出应用程序池及其进程ID,并找到要附加的池。blogs.msdn.com/b/friis/archive/2009/10/22/…–
Nathan

17

只是为了澄清Jimmie R. Houts的答案……

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

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

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

同样适用于VS 2008。


13

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

另外,我已将我的应用程序放在特定的应用程序池中,这意味着您可以随后在w3wp.exe上看到它的标签。



3

ASP.NET进程的可能名称:

  • w3wp.exe是IIS 6.0及更高版本。
  • aspnet_wp.exe是IIS的早期版本。
  • iisexpress.exe是IISExpress。
  • dotnet.exe是ASP.NET Core。
  • inetinfo.exe是在进程内运行的较旧的ASP应用程序。

查找ASP.NET进程的名称


1

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


2
仅在调试ASP代码时才需要。ASP.NET,ISAPI,...并添加代码做的所有其他手段并不需要这个。
理查德

0

使用“附加到IIS的插件”(VS2015VS2017)插件可以节省一些点击-特别是在处理IIS托管站点的生态系统时(一个前端具有多个后端服务)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.