从Visual Studio(Casini)中启动的默认ASP.NET Web服务器在我的开发机器上有点小错误,所以我喜欢在我的开发机器上发布到本地IIS实例并查看那里的Web应用程序。但是,当我以这种方式启动应用程序时,我不会自动进入“调试模式”。
我知道VS 2010有一个“附加到进程”调试功能,但我不确定如何使用它。要从Visual Studio中调试本地IIS ASP.NET Web应用程序,我需要做什么?具体做法是:
背景信息:我在带有IIS 5.1和.NET 4.0的Windows XP SP3上运行Visual Studio 2010。
其他信息:
我应该补充一点,我已尝试附加到aspnet_wp.exe,但是当我进入一个我知道其中有断点的页面时,当我将鼠标悬停在“空心圆”断点上时,我收到以下消息:< / p>
断点当前不会被击中。没有为此文档加载任何符号。
答案 0 :(得分:5)
你需要做的是使用attach来处理和定位aspnet_wp.exe。它可能是w3wp.exe,具体取决于操作系统的风格。我以前有一个用于执行此操作的宏,但它在VS2008之后停止工作。
答案 1 :(得分:4)
我甚至无法在Visual Studio中使用F5工作,即使它已设置为部署到本地IIS服务器。我不确定究竟是什么问题,但我最终能够以更加“手动”的方式使它工作。让它工作的一个重要部分是确保生成调试符号并将它们部署到您的网站。以下是我最终采取的步骤:
IIS Web Site Name
/ Virtual Directory
完成上述操作后,您应该已准备好部署应用程序,以便对其进行调试。以下是我用于部署和随后调试应用程序的步骤:
虽然此方法效果很好,但请记住,它不仅仅附加到本地开发环境。如果另一台计算机上的另一个用户访问该Web应用程序,我相信只要您正在调试该过程,断点仍将会触发。
答案 2 :(得分:1)
我还在本地IIS上开发我的网络应用程序。对于本地IIS调试,F5一直对我有用。
如果必须使用attach进行处理,无论出于何种原因,请确保您要么连接到本地进程,要么确保远程调试器正在远程计算机上运行。例如,通过在浏览器中请求页面,必须提前启动应用程序。使用iisapp
(IIS 5.1,6.0)或appcmd list wp
(IIS 7+)确定哪个进程ID属于哪个应用程序池(仅当您有2个以上的应用程序池时才需要),然后获取用Attach to Process滚动。
答案 3 :(得分:1)
右键单击VS中的Web项目,转到启动选项并选择“使用自定义服务器”,粘贴在IIS中用于站点的本地主机地址。
点击F5,将在IIS中运行。
答案 4 :(得分:0)
我从未进行任何特殊设置,并且附加到处理小工具的效果非常好。只需附加到aspnet_wp.exe进程即可。
答案 5 :(得分:0)
我知道你解决了问题,但也许会帮助别人。
*步骤2和3可以用键盘快捷键Ctrl + Alt + P
替换*如果有多个,您可以全部选择它们(为了解正确的)打开IIS并右键单击要调试的网站&gt; &#34;管理应用程序&#34; &GT; &#34;高级设置......&#34; &GT;查找行&#34;应用程序池&#34;,在它旁边的选项卡中,写入网站正在使用的应用程序池的名称。
从列表中选择w3wp进程
点击按钮&#34;附上&#34;
在您要调试的代码中放置一个断点。
如果您看到红色的断点,但内部颜色为白色,当您将其悬停时,会显示以下消息:
断点当前不会被击中。没有加载任何符号 对于这份文件。
这意味着未加载符号=右/更新dll's
未加载!
建立项目&gt;去&#34; bin&#34;文件夹并复制右dll
(projectName.dll)+也复制(projectName.pdb),pdb
就像这个dll的地图。
将这2个文件复制到文件系统的网站文件夹中(将会有一个名称相同的dll
- 替换它,并添加pdb
文件。
然后像以前一样再次附加过程 - 现在断点应该是全红色,当你加载网站时,断点就会命中。