当前位置:  开发笔记 > 后端 > 正文

如何将调试器附加到IIS而不是ASP.NET Development Server?

如何解决《如何将调试器附加到IIS而不是ASP.NETDevelopmentServer?》经验,为你挑选了5个好方法。

我有一个ASP.NET网站,当我按F5它会自动附加到ASP.NET开发服务器时,当我按F5时,如何附加到IIS工作进程?



1> ckramer..:

调试 - >附加到进程...

从列表中选择aspnet_wp.exe进程.

如果您正在运行IIS>版本5,则该过程将是w3wp.exe,并且每个应用程序池都会有一个(因此,如果您不知道您正在使用哪个应用程序池,则需要附加到所有应用程序池)他们).


IIS 7中的w3wp.exe.
w3wp.exe也适用于IIS 6(在Server 2003中)
@towpse:确保您已经选中了所有用户和所有会话的复选框,因为IIS在会话0中运行(对于服务)并且没有像您一样运行.
我首选的方法是避免打开新窗口 - 并且还保留我在打开的浏览器中已有的任何会话状态.
此外,w3wp进程随需应变,因此在iisreset之后没有进程正在运行.当您向站点发出第一个请求时,IIS会旋转工作进程来处理请求.如果您尝试在Global.asax中调试某些内容,那么它就是PITA.

2> StingyJack..:

打开项目属性,转到Web选项卡并选择IIS选项.

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


附加到流程位于"工具"菜单下
有一个非常方便的VS2013扩展名为ReAttach:http://visualstudiogallery.msdn.microsoft.com/8cccc206-b9de-42ef-8f5a-160ad0f017ae它记得你之前附加的所有进程,所以你不必通过"选择它们"附加到流程".

3> yoel halb..:

从VS菜单调试 - >附加到进程.

要了解要附加到哪个w3wp.exe进程,可以在2008服务器上使用以下命令

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

虽然在Windows 2003上它是

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

有关详细信息,请参阅IIS应用程序池PID.

但是,如果您可以访问任务管理器(taskmgr.exe),则可以直接看到进程的名称以及进程ID,并且在大多数情况下,进程的"用户名"列将与应用程序相同池名称,(当然,您必须将这些列设置为在任务管理器中可见,以便查看信息).

但请注意,所有方法都只显示当前正在运行的进程,这意味着如果您的特定进程由于空闲时间而关闭,则您首先要使用该站点以便将该进程放入列表中.

此外,如果应用程序是"Web Garden"(具有多个w3wp.exe),那么即使在附加到正确的进程之后,仍然无法保证断点将被命中,因为到站点​​的流量可能会被定向到另一个处理.

另请注意,如果您附加到以发布模式运行的应用程序,它现在将在调试模式下运行,这意味着例如没有超时限制(如果您实际尝试的话,这可能会有点问题)解决超时错误).


如果您想要附加到远程进程,这是最佳做法:

    通过打开相关端口或完全禁用防火墙来确保防火墙没有阻塞(只需记住在完成后再次打开它).

    您应该在远程计算机上拥有一个具有管理权限的Windows域帐户,或者拥有一个帐户 - 与远程计算机上运行VS的本地计算机具有相同的用户名和密码.

    在已安装VS的计算机上导航到(Visual Studio安装路径)\ Microsoft Visual Studio(当前版本号)\ Common7\IDE\Remote Debugger(远程计算机版本),并将此文件夹复制并粘贴到远程计算机或共享此文件夹,以便可以从远程计算机访问它.

    在远程计算机上以与本地计算机相同的用户身份登录(请参阅步骤2),然后导航到步骤3的复制或共享文件夹,右键单击"msvsmon.exe",然后从上下文菜单中选择"运行方式"管理员".

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

    在VS中,从菜单中选择Debug - > Attach To Process,将传输保留为"Default",对于"Qualifier Name",输入步骤5中的名称.
    如果一切正常,将显示远程计算机上的进程列表.

当然,这个主题还有很多,而且为了调试本机代码,这个过程可能更简单,但我在这里列出的步骤应该适用于所有情况.

有关更多信息,您可以查看http://www.codeproject.com/KB/aspnet/IISRemoteDebugging.aspx或MSDN以及此站点上的许多帖子.

希望这会有所帮助.



4> Jon Adams..:

或者您可以使用Attach to IIS插件之一到Visual Studio.

我的首选扩展是VSCommands(适用于VS 2010 - 2012或2013,但尚未2015)或ReAttach(适用于2017年).



5> Danimal..:

转到Web应用程序的属性.选择"开始选项"部分,然后从"使用默认Web服务器"更改为"使用自定义服务器".在基本URL中输入" http:// localhost ".

(假设VS 2008)

推荐阅读
郑谊099_448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有