【问题标题】:Silverlight Multiple Application DebuggingSilverlight 多应用程序调试
【发布时间】:2009-12-05 00:32:52
【问题描述】:

我在同一个解决方案中有三个 Silverlight 3 应用程序。在我的 asp.net 托管项目中,我对所有三个项目都有一个单独的页面。当我在页面之间导航时,唯一遇到的 Silverlight 断点是我加载的初始页面。

这个问题最近才开始。我曾经能够同时在所有 silverlight 项目之间进行调试。有任何想法吗?我已删除 ClientBin 文件夹,已删除所有文件并从源代码管理中重新检索。似乎没有任何工作。

【问题讨论】:

  • 我使用的是在 Windows 7 上运行的 Visual Studio 2008,浏览器是 IE 8。
  • 我已经通过附加到进程来使其工作,但调试器不会自动选择新页面。

标签: asp.net silverlight debugging silverlight-3.0


【解决方案1】:

“问题最近才开始”。发生了什么变化?以下是一些猜测:-

  • 您已升级到 Windows 7
  • 您安装了更多内存
  • 在您进行测试时,其他一些占用大量内存的应用程序不再运行。

默认情况下,IE8 至少会运行多个进程 2。一个用于浏览器框架,一个用于初始选项卡的内容。当您打开更多窗口和选项卡时,IE 可能会向它当前使用的集合添加新进程。

当您调试时,VS 将启动一个新的 IE8 会话,并将附加到处理打开的单个选项卡内容的进程(它不会费心附加到父框架进程)。但是,当您浏览您的应用程序时,IE8 将启动 VS 不会附加到的新进程。这会强制您打开“附加到进程”对话框并手动执行。

您可以从注册表控制此 IE8 功能(称为 BTW LCIE,松散耦合 IE)。

在键 HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main 中添加一个新的 DWORD 值 TabProcGrowth。将其值设置为 1。现在 IE8 将只为每个会话创建 2 个进程,一个用于框架,一个用于所有选项卡和窗口内容,这是 VS 将附加到的一个。

如果您还使用 IE8 作为您的通用浏览器,这可能有点苛刻。一种选择是将 IE8 用于测试目的,而使用其他浏览器进行一般浏览。另一种选择是上述的变体。与其将 TabProcGrowth 创建为 DWORD,不如将其创建为字符串类型,并将其值设置为“小”。在这种模式下,IE8 在打开的进程数量方面要少得多。当然,您可以创建几个脚本来创建和删除注册表项。

注意没有注册表项 IE8 使用它自己的 hueristics 取决于可用内存等来确定新进程是否被警告。这或许可以解释为什么过去您的调试工作正常,而它显然无缘无故停止工作。

【讨论】:

  • 非常有帮助的帖子,所以我会给你投票 - 但不是答案。
【解决方案2】:

这就是问题所在:

我的一个子窗口有一个调用 .Net Ria 服务的 Silverlight。服务调用以错误结束。

下一次我调试了几次,调试器没有附加到子窗口。我必须手动附加到子窗口。

我修复了 Ria 服务调用,使其不会以错误结束。并且必须在该调试会话中手动附加到子窗口。但是在随后的调试会话中,调试器会自动附加。

我尝试中断 Ria 服务调用,但我不得不再次手动附加。有点奇怪的是,关闭 Visual Studio 甚至重新启动机器都不会使 Visual Studio 再次自动附加。您必须有一个调试会话,其中子窗口成功调用 Ria 服务来修复它。

注意: 破坏我的调试器的 RIA 错误是由域查询中的包含拼写错误引起的(即...

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

) 并非所有 RIA 异常都会导致此问题。

我的场景有许多具体案例,我将介绍这些案例。我没有所有方便的东西来测试更一般的场景,但是当我完成我的项目时我会这样做,除非有人先这样做。

这是我所拥有的:

我正在使用 .Net RIA 服务 2009 年 7 月预览版中的 LinqToEntitiesDomainService。

更复杂一点的是,由于我的应用程序使用的是 Oracle 后端,因此我使用 DevArt 的 dotConnect 实体提供程序作为我的域服务的 EntityFramework 模型。

当我有时间时,我会在 2009 年 11 月的 RIA 和标准 SQL 后端和 EF 上尝试一下,看看我是否仍然遇到同样的问题。如果是这种情况,我会将其作为 Visual Studio 错误报告给 Microsoft。

【讨论】:

    猜你喜欢
    • 2010-12-29
    • 2011-03-10
    • 1970-01-01
    • 2011-03-13
    • 2011-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多