2012-10-19 25 views
0

我有兩個解決方案,一個是asp.net,另一個是silverlight解決方案。它們都託管在我的本地服務器上。我需要的是同時調試兩種解決方案,在ASP解決方案我有網頁,這樣需要同時調試asp和silverlight解決方案

<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過程。 一個麻煩的解釋,但希望會理解。

回答

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 - ASP.NET項目在Index.html中託管Silverlight應用程序
  • IFrameWebApp - 指向另一個ASP.NET項目中的Index.html的的ASP.NET項目

1)在託管Silverlight應用程序的ASP.NET項目中,更改設置,以便在調試時不打開頁面,並指定端口以便始終可以在已知地址在這種情況下將是http://localhost:18000)。您不希望它打開頁面,因爲IFrame ASP.NET項目具有您想要顯示的實際頁面。我們仍然希望它掛接調試器到雖然web服務器進程,這是在步驟3將進來,

Setting port and start action

2)已知點的iframe的IFrame的項目中的src屬性託管在其他ASP.NET項目中的Silverlight應用程序,像這樣的頁面的地址:

<iframe width="100%" height="100%" src="http://localhost:18000/Index.html"></iframe> 

3)右鍵單擊解決方案文件,並選擇屬性。在「啓動項目」下,您需要選擇「多個啓動項目」,並將兩個ASP.NET項目的啓動操作設置爲「啓動」。

Setting multiple startup projects

4)確保Silverlight的調試既是ASP.NET項目,特別是IFrame的項目此特定情形中啓用:

enter image description here

5)中設置斷點您Silverlight應用程序,按F5,一切都應該啓動。由於您將兩個ASP.NET項目都設置爲啓動,它將啓動兩個開發Web服務器,但只啓動一個Internet瀏覽器,指向IFrame項目。我在Silverlight項目的應用程序的啓動增加了斷點只是爲了演示它擊中:

enter image description here

6)按F5繼續執行和Silverlight應在iframe中顯示出來,因爲在這裏可以看到:

enter image description here

7)令人高興的是設置斷點在任何三個項目的Visual Studio將調試所有的人!

+0

感謝您的回覆。我將我的asp項目添加到sl項目的解決方案中,現在我有3個項目,即 - 1)sl應用程序,2)託管sl應用程序的asp應用程序,3)具有iframe調用應用程序的asp應用程序,應用。因此,我將應用程序#3設置爲啓動項目,但我不知道如何啓動應用程序託管sl應用程序。你能建議如何將它們綁定在一起嗎? – AnteGemini

+0

哦,它的工作原理是,由於iframe中的URL錯誤,無法啓動它們。但sl應用程序仍然沒有達到斷點 – AnteGemini

+0

我測試了它,絕對有效。通過屏幕截圖和用於我的測試和截圖的解決方案的下載鏈接更新了我的答案。 –

0

您必須在託管Silverlighth應用程序的Web項目上檢查Silverlight。

enter image description here

+0

這不會幫助他調試他不同的解決方案中的Silverlight項目。 –

+0

我試過這個,但是正如Mike Marynowski說的那樣對我沒有幫助。 – AnteGemini