如何在VS而不是JIT Debugger中调试?

时间:2011-05-04 16:37:31

标签: visual-studio-2010 silverlight wcf-ria-services visual-studio-debugging

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


我的笔记本电脑上有令人沮丧的调试行为,我想修复它。我跟着名为Silverlight TV 46: What's Wrong with my WCF Service的演示?

在我的计算机上,我注意到在RIA服务中抛出新的ArithmeticException()导致即时调试程序参与(一件坏事 - 我想要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.  
  • [checked]将当前选定的调试器设置为默认值。
  • [unchecked]手动选择调试引擎

  • 动作:点击是。

第2次错误:

  

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

我花了几个小时寻找解决方法。

浏览器是IE9 / Silverlight 4。

2 个答案:

答案 0 :(得分:2)

以前,我开始通过VS2010环境直接启动silverlight应用程序......但随后又决定再次部署更多部署。

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

从底部开始,他们提到从控制面板/ VS2010进行维修。做过某事。等了很久,煮了咖啡,做了别的事情。终于完成了。问题在于那里。包含此步骤只是为了防止修复是累积的(在这些事情发生一段时间后你会迷信)。

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

  

项目属性/ Web /特定页面

再次调试工作!

.html停止调试了吗?随意检查显示同样的javascript东西启动Silverlight。从表面上看,它看起来是一样的。嗯。我猜它不是。

...对于那些仍有问题的人来说,这里还有一些额外的东西(我可能会列出它们 虽然他们在我脑海里很新鲜。)

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

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

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

    1. IE9设置。
    2. [X]禁用脚本调试。

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

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

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

      再次,不确定这些后期设置是否会产生影响。

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

答案 1 :(得分:1)

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