將您的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將進來,
2)已知點的iframe
的IFrame的項目中的src
屬性託管在其他ASP.NET項目中的Silverlight應用程序,像這樣的頁面的地址:
<iframe width="100%" height="100%" src="http://localhost:18000/Index.html"></iframe>
3)右鍵單擊解決方案文件,並選擇屬性。在「啓動項目」下,您需要選擇「多個啓動項目」,並將兩個ASP.NET項目的啓動操作設置爲「啓動」。
4)確保Silverlight的調試既是ASP.NET項目,特別是IFrame的項目此特定情形中啓用:
5)中設置斷點您Silverlight應用程序,按F5,一切都應該啓動。由於您將兩個ASP.NET項目都設置爲啓動,它將啓動兩個開發Web服務器,但只啓動一個Internet瀏覽器,指向IFrame項目。我在Silverlight項目的應用程序的啓動增加了斷點只是爲了演示它擊中:
6)按F5繼續執行和Silverlight應在iframe中顯示出來,因爲在這裏可以看到:
7)令人高興的是設置斷點在任何三個項目的Visual Studio將調試所有的人!
感謝您的回覆。我將我的asp項目添加到sl項目的解決方案中,現在我有3個項目,即 - 1)sl應用程序,2)託管sl應用程序的asp應用程序,3)具有iframe調用應用程序的asp應用程序,應用。因此,我將應用程序#3設置爲啓動項目,但我不知道如何啓動應用程序託管sl應用程序。你能建議如何將它們綁定在一起嗎? – AnteGemini
哦,它的工作原理是,由於iframe中的URL錯誤,無法啓動它們。但sl應用程序仍然沒有達到斷點 – AnteGemini
我測試了它,絕對有效。通過屏幕截圖和用於我的測試和截圖的解決方案的下載鏈接更新了我的答案。 –