2009-12-05 91 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