具体使用托管兼容性模式的功能是什么

时间:2018-02-26 09:25:53

标签: debugging visual-studio-2017

所以我一直在努力解决大型实体框架查询中的visual studio调试器超时问题。基本上有时当踩过实体框架linq查询时,它会给我这个错误。

  

评估功能   'System.Data.Entity.Infrastructure.DbQuery.ToString'定时   出来并需要以不安全的方式中止。这可能已经损坏了   目标过程。

     

如果问题经常发生,请考虑禁用   工具 - >选项设置“调试 - >常规 - >启用属性评估   和其他隐式函数调用“或更改代码以禁用   评估这种方法。有关执行此操作的信息,请参阅帮助。

一旦我遇到错误,我需要重新启动调试器来修复它。经过一番研究和拔毛之后,我遇到了一个启用“使用托管兼容模式”的建议。令人惊讶的是这很有用,我也注意到我可以逐步完成代码的速度显着提高。

文档说这是一个传统调试器,启用它可能会禁用某些调试功能。

那么功能差异究竟是什么呢?为什么使用“托管兼容模式”会提高步调速度呢?

1 个答案:

答案 0 :(得分:2)

据我所知,这是VS2013的一个新选项

https://blogs.msdn.microsoft.com/visualstudioalm/2013/10/16/switching-to-managed-compatibility-mode-in-visual-studio-2013/

在旧的VS版本中,C#和VB项目没有办法关闭托管调试。

选项"托管兼容模式"用于管理和混合调试,但不用于仅本机调试。

您可以从Hans Passant的建议中获得更详细的信息:

`Use managed compatibility mode` or `Enable native code debugging`?