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

问题描述 投票:1回答:1

因此,我一直在努力将视觉工作室调试器超时用于大型实体框架查询一段时间。基本上有时当踩过实体框架linq查询时,它会给我这个错误。

评估函数'System.Data.Entity.Infrastructure.DbQuery.ToString'超时并需要以不安全的方式中止。这可能已损坏目标进程。

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

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

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

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

debugging visual-studio-2017
1个回答
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`?

© www.soinside.com 2019 - 2024. All rights reserved.