需要同时调试asp和silverlight解决方案

时间:2012-10-19 09:59:47

标签: asp.net visual-studio-2010 silverlight

我有两个解决方案,一个是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进程。 一个繁琐的解释,但希望会理解。

2 个答案:

答案 0 :(得分:1)

将ASP.NET和Silverlight项目添加到通用解决方案中,Visual Studio调试器将在调试网站项目时自动附加到Silverlight应用程序。您不能将两个单独的Visual Studio实例附加到同一个Internet Explorer实例,因此您必须将两者都添加到同一解决方案并从那里进行调试。

您可以将Silverlight项目添加到现有的ASP.NET解决方案(右键单击解决方案,添加 - >现有项目),或者为要同时调试两者的时间创建新的解决方案(创建新的空白解决方案并添加现有项目,与以前相同。)

以下是在此之后逐步配置所有内容的过程。您可以在此处将此源文件下载到测试解决方案中:

http://www.singulink.com/ClientFiles/StackOverflow/CrossProjectTest.zip

项目如下:

  • CrossProjectTest - Silverlight 4项目
  • CrossProjectTest.Web - 在Index.html
  • 中托管Silverlight应用程序的ASP.NET项目
  • IFrameWebApp - 在另一个ASP.NET项目中指向Index.html的<iframe>的ASP.NET项目

1)在托管Silverlight应用程序的ASP.NET项目中,更改设置,使其在调试时不打开页面并指定端口,以便始终可以在已知地址(在此处案例将是http://localhost:18000)。您不希望它打开页面,因为IFrame ASP.NET项目具有您要显示的实际页面。我们仍然希望它将调试器挂钩到Web服务器进程中,这是步骤#3的用武之地。

Setting port and start action

2)将src的{​​{1}}属性指向IFrame项目中的另一个ASP.NET项目中托管silverlight应用程序的页面的已知地址,如下所示:

iframe

3)右键单击解决方案文件,然后选择“属性”。在“启动项目”下,您需要选择“多个启动项目”,并将两个ASP.NET项目的启动操作设置为“开始”。

Setting multiple startup projects

4)确保在ASP.NET项目中启用Silverlight调试,尤其是针对此特定场景的IFrame项目:

enter image description here

5)在Silverlight应用程序中设置断点,按F5,一切都应该启动。因为您将两个ASP.NET项目都设置为启动,所以它将启动两个开发Web服务器,但只启动一个Internet浏览器,指向IFrame项目。我在Silverlight项目的App Startup中添加了一个断点,以证明它受到了攻击:

enter image description here

6)按F5继续执行,Silverlight应显示在IFrame中,如下所示:

enter image description here

7)在三个项目中的任何一个项目中都快速放置断点,Visual Studio将调试所有这些项目!

答案 1 :(得分:0)

您必须在托管Silverlighth应用程序的Web项目上检查Silverlight。

enter image description here