2009-12-05 88 views
2

我在同一解決方案中有三個Silverlight 3應用程序。在我的asp.net託管項目中,我爲所有三個項目都有一個單獨的頁面。當我在頁面之間導航時,遇到的唯一Silverlight斷點是我加載的初始頁面。Silverlight多應用程序調試

此問題最近纔剛剛開始。我曾經能夠同時在所有的Silverlight項目之間進行調試。有任何想法嗎?我刪除了ClientBin文件夾,我刪除了所有文件,並從源代碼管理中重新檢索。似乎沒有任何工作。

+0

我使用的Windows 7上運行的Visual Studio 2008和IE 8是瀏覽器。 – Gus 2009-12-05 00:34:38

+0

我已經通過附加到過程來完成此工作,但調試器不會自動接收新頁面。 – Gus 2009-12-05 13:17:18

回答

1

這裏是問題:

我的一個子窗口有這樣的調用的.Net利雅服務的Silverlight。服務調用以錯誤結束。

下次我調試了幾次,調試器沒有附加到子窗口。我必須手動附加到子窗口。

我修復了Ria服務調用,以便它不會以錯誤結束。並且必須在該調試會話中手動附加到子窗口。但是在隨後的調試會話中,調試器會自動附加。

我試圖打破RIA服務電話,我不得不再次手動連接。有點奇怪的是,關閉Visual Studio,甚至重新啓動機器都不會使Visual Studio自動重新連接。你必須有一個調試會話,讓子窗口對Ria服務進行成功調用來修復它。

注: 這是打破我的調試器RIA錯誤是由一個拼寫錯誤造成包括域中查詢(即...

return Context.SOME_ENTITY.Include("Misspelled_Association_Property"); 

)不是所有的RIA異常導致此問題。

我的場景有一些特定情況,我會去。我沒有所有的東西來測試一個更普遍的情況,但是當我完成我的項目時,除非有人這樣​​做,否則我會做。

以下是我有:

我現在用的是一個LinqToEntitiesDomainService從.net RIA服務的2009年7月預覽版本。

使事情複雜一點,因爲我的應用程序使用的是Oracle後端,所以我使用DevArt的dotConnect實體提供程序作爲我的域服務的EntityFramework模型。

當我得到時間後,我會在2009年11月的RIA和一個標準的SQL後端和EF上試試這個問題,看看我是否仍然有同樣的問題。如果是這種情況,我會將它作爲Visual Studio錯誤報告給Microsoft。

2

「問題最近纔剛剛開始」。什麼改變了?下面是一些猜測: -

  • 您升級到Windows 7
  • 你安裝了一些更多的內存
  • 當您正在測試其他一些大量消耗內存的應用程序不再運行。

默認情況下,IE8將運行至少2個多進程。一個用於瀏覽器框架,另一個用於intial選項卡的內容。當你打開更多的窗口和標籤時,IE可能會向當前使用的設置添加新的進程。

當您調試VS將啓動一個新的IE8會話,並將附加到處理打開的單個選項卡的內容(它不打擾附加到父框架進程)。然而,當你瀏覽你的應用程序時,IE8將啓動VS不會附加到的新進程。這迫使您打開「附加到進程」對話框並手動執行。

您可以從註冊表中控制此IE8功能(稱爲BTW LCIE,Loosely Coupled IE)。

在密鑰HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main中添加一個新的DWORD值TabProcGrowth。將它的值設置爲1.現在IE8將只爲每個會話創建2個進程,一個用於框架,另一個用於VS將附加到的所有選項卡和窗口內容。

如果您還使用IE8作爲您的一般瀏覽器,這可能會有些嚴重。一種選擇是讓IE8出於測試目的,並使用其他瀏覽器進行常規瀏覽。另一種選擇是上述的變體。而不是創建TabProcGrowth作爲一個DWORD創建它作爲一個字符串類型,而是設置值爲「小」。在這種模式下,IE8在打開的進程數量方面要小得多。當然,您可以創建幾個腳本來創建和刪除註冊表項。

注意沒有註冊表項IE8使用自己的hueristics取決於可用內存等,以確定是否新過程是warrented。這可以解釋爲什麼在過去你的調試工作,並顯然沒有理由它停止工作。

+0

非常有用的帖子,所以我會給你一個投票 - 但不是答案。 – Gus 2009-12-06 23:06:10