KeyVaultClient在调试时随机引发FatalExecutionEngineError

时间:2019-07-02 06:56:28

标签: c# .net asp.net-mvc azure-keyvault

当我调试ASP.NET MVC应用程序时,KeyVaultClient会随机抛出异常:

  

托管调试助手'FatalExecutionEngineError':'运行时遇到致命错误。错误的地址为线程0x6098上的0x59eab403。错误代码为0xc0000005。此错误可能是CLR或用户代码中不安全或不可验证部分的错误。该错误的常见来源包括COM-interop或PInvoke的用户封送处理错误,这些错误可能会破坏堆栈。'

我使用:

  • nuget Microsoft.Azure.KeyVault 3.0.3
  • Visual Studio 2019专业版16.1.4
  • Microsoft.AspNet.WebApi 5.2.3
  • 没有托管的兼容模式

我熟悉this question,但没有任何帮助。


编辑

启用托管兼容模式后,我得到了稍微不同的错误:

  

托管调试助手“ FatalExecutionEngineError”已在“ C:\ Program Files(x86)\ IIS Express \ iisexpress.exe”中检测到问题。   附加信息:运行时遇到致命错误。错误的地址位于线程0x54a8上的0x6c0db403。错误代码为0xc0000005。此错误可能是CLR或用户代码中不安全或不可验证部分的错误。该错误的常见来源包括COM-interop或PInvoke的用户封送处理错误,这些错误可能会破坏堆栈。    发生

1 个答案:

答案 0 :(得分:1)

新的托管调试引擎使我们能够比旧的实现更快地添加新功能。仅一年后,Visual Studio 2013中引入的功能数量就可以看出这一点,包括托管返回值,.NET 64位编辑和 Continue, Async Callstacks 增强功能以​​及改进的“任务窗口”仅举几例。不幸的是,新的调试引擎尚不支持某些方案,因此在这些情况下,您将不得不切换回旧版引擎。

您收到的错误是由于新调试引擎不支持的问题。

请尝试以下设置,直到出现相同的错误为止。

  • 要全局切换回旧版调试引擎,请选择“工具/选项”

  • 然后在“调试/常规”标签上选中“使用托管的兼容模式”。

global选项将强制将旧版引擎用于任何启动或附加。

希望有帮助。