我有两个解决方案,一个是asp.net,另一个是silverlight解决方案。它们都托管在我的本地服务器上。我需要的是同时调试两个解决方案,在asp解决方案中我有一个像这样的代码的页面
<iframe src="http://localhost/UI_RegInc/UI_RegInc.aspx?UserId=<%=UserId%>"
frameborder="0" height="620" scrolling="no" width="1000" marginheight="0" marginwidth="0">
</iframe>
这里我正在调用UI_RegInc silverlight应用程序,其中UI_RegInc.aspx页面正在调用我想要调试的silverlight应用程序。 我尝试的是启动asp应用程序,然后在VS的另一个实例中启动silverlight应用程序,它是UI_RegInc,在这个例子中 试图用asp应用程序将它附加到iexplorer进程。但没有得到积极的结果。还试图附加到webdev进程。 一个繁琐的解释,但希望会理解。
答案 0 :(得分:1)
将ASP.NET和Silverlight项目添加到通用解决方案中,Visual Studio调试器将在调试网站项目时自动附加到Silverlight应用程序。您不能将两个单独的Visual Studio实例附加到同一个Internet Explorer实例,因此您必须将两者都添加到同一解决方案并从那里进行调试。
您可以将Silverlight项目添加到现有的ASP.NET解决方案(右键单击解决方案,添加 - >现有项目),或者为要同时调试两者的时间创建新的解决方案(创建新的空白解决方案并添加现有项目,与以前相同。)
以下是在此之后逐步配置所有内容的过程。您可以在此处将此源文件下载到测试解决方案中:
http://www.singulink.com/ClientFiles/StackOverflow/CrossProjectTest.zip
项目如下:
<iframe>
的ASP.NET项目 1)在托管Silverlight应用程序的ASP.NET项目中,更改设置,使其在调试时不打开页面并指定端口,以便始终可以在已知地址(在此处案例将是http://localhost:18000
)。您不希望它打开页面,因为IFrame ASP.NET项目具有您要显示的实际页面。我们仍然希望它将调试器挂钩到Web服务器进程中,这是步骤#3的用武之地。
2)将src
的{{1}}属性指向IFrame项目中的另一个ASP.NET项目中托管silverlight应用程序的页面的已知地址,如下所示:
iframe
3)右键单击解决方案文件,然后选择“属性”。在“启动项目”下,您需要选择“多个启动项目”,并将两个ASP.NET项目的启动操作设置为“开始”。
4)确保在ASP.NET项目中启用Silverlight调试,尤其是针对此特定场景的IFrame项目:
5)在Silverlight应用程序中设置断点,按F5,一切都应该启动。因为您将两个ASP.NET项目都设置为启动,所以它将启动两个开发Web服务器,但只启动一个Internet浏览器,指向IFrame项目。我在Silverlight项目的App Startup中添加了一个断点,以证明它受到了攻击:
6)按F5继续执行,Silverlight应显示在IFrame中,如下所示:
7)在三个项目中的任何一个项目中都快速放置断点,Visual Studio将调试所有这些项目!
答案 1 :(得分:0)
您必须在托管Silverlighth应用程序的Web项目上检查Silverlight。