我如何将调试器附加到IIS而不是ASP.NET开发服务器?

问题描述 投票:0回答:3
我有一个ASP.NET网站,当我按F5时,它会自动连接到ASP.NET开发服务器,当我按F5时,我如何将其附加到IIS工作过程?

asp.net debugging
3个回答
97
投票

从列表中选择

ASPNET_WP.EXE

进程。 如果您正在运行IIS>版本5

该过程将是

w3wp.exe,每个应用程序池都会有一个(因此,如果您不知道要击中哪个应用程序池需要附加所有这些)。 开放项目属性,转到“ Web”选项卡,然后选择IIS的选项。

实际上在IIS中启动了该应用程序的实例并附加了调试器。如果您只想附加到现有的IIS实例,请从“调试”菜单中选择“附加到进程”。

50
投票
depebug->从VS菜单附加到进程。

为了知道要附加的W3WP.EXE进程您可以在2008 Server上使用以下命令

c:\%systemroot%\system32\inetsrv\appcmd list wp


11
投票

c:\%systemroot%\system32\cscript iisapp.vbs

有关更多信息,请参见

IIIS应用程序池PID
.

如果您可以访问任务管理器(taskmgr.exe),则可以直接看到该过程的名称以及过程ID,并且在大多数情况下,该过程的“用户名”列将与应用程序池名称(当然,您必须设置这些列在任务管理器中可见以查看信息)。
但请注意,所有方法都将仅显示当前正在运行的过程,这意味着,如果您的特定进程由于空闲时间而关闭,则首先使用该站点以将过程提高到列表中。 

同样,如果应用程序是“网络花园”(具有一个以上的w3wp.exe),那么即使连接到正确的过程之后,仍然无法保证要击中断点另一个过程 也请注意,如果您附加在发布模式下运行的应用程序,现在它将以调试模式运行,这意味着没有超时限制(如果您实际上正在尝试尝试,这可能有点问题要对超时错误进行故障排除)。

如果您想附加到远程过程,这是最好的做法:


确保防火墙不会通过打开相关端口或完全禁用防火墙(只需记住在完成后再次打开它)。 您应该在远程计算机上具有一个具有管理特权的Windows域帐户或具有与正在运行的本地计算机相同的用户名和密码的帐户。
在已安装的机器中导航到(Visual Studio Install Path)\ Microsoft Visual Studio(当前版本号)\ CONCOL7 \ IDE \ IDE \ remote Debugger(远程计算机版本),然后将此文件夹复制并粘贴到远程计算机或共享此文件夹可以从远程计算机访问。

在远程计算机上登录与本地计算机(请参见步骤2)从那里导航到步骤3的复制或共享文件夹,然后右键单击“ msvsmon.exe”,然后从上下文菜单中选择“运行”作为管理员”

远程监视器应启动并声称它通常以(用户)@(远程计算机)或任何其他名称的名称启动服务器。

在vs select debug->附加到菜单上的进程,将传输留在“默认”上,并为“限定符”名称“”输入步骤5的名称。 如果一切正确,这将列出远程计算机上的流程列表。

当然,此主题还有很多,对于调试本机代码,该过程可能会更简单,但是我在这里列出的步骤在每种情况下都应有效。

对于更远的信息,您可以在
http://www.codeproject.com/kb/aspnet/iisremotedebugging.aspx或MSDN上查看此网站上的许多帖子。
希望这会有所帮助。

  1. 或您可以使用IIS插件附件的一个与Visual Studio的附件。
    我的首选扩展名是VSCommands(对于2010-2010-1201或
  2. 2013
  3. ,但尚未2015年)或
    Reattach
  4. (2017年作品)。

  5. go到Web应用程序的属性。选择“开始选项”部分,然后从“使用默认Web服务器”更改为“使用自定义服务器”。在基本URL中输入“
  6. Http://localhost
    ”。
  7. (假设vs 2008)

  8. 如果您的IIS应用程序池与站点名称关联,则可以通过导航到项目的属性来轻松地在Visual Studio中配置它。转到Web,然后找到服务器部分,然后选择外部主机。在
    Projecturl
  9. 字段中,输入您的主机名。运行项目时,它将自动连接到指定的主机。project属性

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.