我有一个ASP.NET网站,当我按F5键时它会自动附加到ASP.NET开发服务器上,而当我按F5键时如何附加到IIS工作进程?
Answers:
打开项目属性,转到Web选项卡,然后为IIS选择选项。
实际上,这将在IIS中启动该应用程序的实例并附加调试器。如果只想附加到现有的IIS实例,请从调试菜单中选择“附加到进程”。
调试->附加到处理...
从列表中选择aspnet_wp.exe进程。
如果您正在运行IIS>版本5,则该过程将为w3wp.exe,并且每个应用程序池都有一个(因此,如果您不知道要击中哪个应用程序池,则需要将其附加到所有其中)。
从VS菜单中的Debug-> Attach to Process。
为了知道要附加到哪个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),则即使附加到正确的进程之后,也仍然无法保证会遇到断点,因为可能会将访问该站点的流量定向到另一个站点。处理。
还要注意,如果您附加到在发布模式下运行的应用程序,则它将改为在调试模式下运行,这意味着,例如,将没有超时限制(如果您实际上试图解决超时错误)。
如果要附加到远程进程,这里是最佳做法:
当然,这个主题还有很多,对于调试本机代码,该过程可能会更简单,但是我在这里列出的步骤在每种情况下都应该起作用。
有关更多信息,请访问http://www.codeproject.com/KB/aspnet/IISRemoteDebugging.aspx或MSDN上的内容,以及该站点上的许多帖子。
希望这会有所帮助。
转到Web应用程序的属性。选择“启动选项”部分,然后从“使用默认Web服务器”更改为“使用自定义服务器”。输入“ http:// localhost在基本网址中 ”。
(假设是VS 2008)
iisexpress.exe