3

更新:通过菜单导航到流程:DEBUG / Attach Process / iexplore.exe显示“自动:Silverlight 代码”。即 VS 2010 已经附加到该过程中。为什么不进入调试视图?


我的笔记本电脑上出现了令人沮丧的调试行为,我想修复它。我正在关注名为Silverlight TV 46 的演示:我的 WCF 服务有什么问题?

在我的计算机上,我注意到将 throw newArithmeticException()放入 RIA 服务会导致即时调试器参与其中(一件坏事——我想要 VS)。我可以在该行上设置一个断点throw new ArithmeticExpression(),然后 VS 会像往常一样停止。按 F10,我仍然可以启动即时调试器。

在 Yvor 的计算机(上面第 8 章链接中的演示者)上,Visual Studio 调试器启动,而不是即时调试器。我究竟做错了什么?以前安装 Redgate Reflector 可能会导致这种情况(现在已经消失了)。

错误:Visual Studio 即时调试器代码:4004 类别:ManagedRuntimeError 消息:System.Reflection.TargetInvocationException:操作过程中发生异常,导致结果无效。

查看 ...

可能的调试器:

New instance of MS VS 2010, 
New instance of VS 2008.  
  • [选中] 将当前选择的调试器设置为默认值。
  • [未选中] 手动选择调试引擎

  • 行动:点击是。

第二个错误:

无法附加到崩溃进程。已附加调试器。

我花了几个小时寻找解决这个问题的方法。

浏览器是 IE9 / Silverlight 4。

4

2 回答 2

2

以前,我开始直接通过 VS2010 环境启动 silverlight 应用程序......但后来决定(再次)获得更多的部署兼容。

http://msdn.microsoft.com/en-us/library/cc838267(VS.95).aspx

在底部,他们提到从控制面板/VS2010 进行修复。做过某事。等了很长时间,煮咖啡,做了别的事情。终于完成了。问题仍然存在。包括这个步骤,以防万一修复是累积的(一段时间后你会迷信这些东西)。

然后我删除了zap文件,将启动页面从html切换到aspx。将 aspx 连接到 xap(它没有指向 /debug/ 文件夹)。[注意:看起来您可以通过 Silverlight 项目/构建/输出路径删除调试:将 Bin\Debug\ 替换为 Bin。使用 Silverlight,我觉得相对 Uri 路径应该与您的 html / aspx 文件匹配,无论您是在调试还是发布。

项目属性/Web/特定页面

再次调试!

.html 是否停止调试?随意的检查会发现启动 Silverlight 的相同 javascript 内容。表面上看起来是一样的。嗯。我猜不是。

......对于那些仍然有问题的人,这里有一些额外的事情要注意(我不妨在他们记忆犹新的时候列出它们)。

  1. 项目/属性/Web/调试器:我现在只检查了 Silverlight。不再检查 ASP.Net。(不确定这是否会影响我现阶段的结果)

  2. 确保您的 Web 项目指向 project/properties/Silverlight Applications 中的 silverlight 项目。这可确保将 silverlight 项目的二进制“xap”复制到网站/Web 应用程序内的文件夹中。注意:点击添加按钮会显示一个目标文件夹(应该是 ClientBin)。

您的构建配置将添加一个额外的子文件夹,例如调试。
确保您的 .aspx 或 .html 文件具有正确的路径。对我来说,我只包含了 .ClientBin/debug/ 文件夹。我不认为这是部署友好的,所以我稍后会寻找更好的方法。

  1. IE9 设置。

[X] 禁用脚本调试。

[X] 禁用脚本调试(其他)

[ ] 显示有关脚本错误的通知

[ ] 显示友好的 HTTP 错误消息

同样,不确定这些后来的设置是否有影响。

最后,我有时会忘记一些事情。一定要检查 Debug VS2010 / Exceptions / Common language Runtime。这提高了捕获异常的能力。

于 2011-06-25T14:47:50.930 回答
1

我有一个类似的问题,但上述并没有解决它。但是,在不调试 (Ctrl-F5) 的情况下启动应用程序并触发异常将允许我选择启动应用程序的 Visual Studio 实例。令人惊讶的是,我得到了合理的堆栈跟踪并在几分钟内解决了问题。

于 2012-12-05T13:29:29.057 回答