【问题标题】:KeyVaultClient throws FatalExecutionEngineError on debug randomlyKeyVaultClient 在调试时随机抛出 FatalExecutionEngineError
【发布时间】:2019-11-12 18:34:50
【问题描述】:

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

Managed Debugging Assistant 'FatalExecutionEngineError' : '运行时遇到致命错误。错误地址位于线程 0x6098 上的 0x59eab403。错误代码为 0xc0000005。此错误可能是 CLR 中的错​​误或用户代码的不安全或不可验证部分中的错误。此错误的常见来源包括 COM 互操作或 PInvoke 的用户封送错误,这可能会损坏堆栈。'

我用:

  • nuget Microsoft.Azure.KeyVault3.0.3
  • Visual Studio 2019 专业版 16.1.4
  • Microsoft.AspNet.WebApi5.2.3
  • 没有托管兼容模式

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


编辑

启用托管兼容模式后,我得到的错误略有不同:

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

【问题讨论】:

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


    【解决方案1】:

    新的托管调试引擎使我们能够比旧实现更快速地添加新功能。这可以从 Visual Studio 2013 仅一年后引入的功能数量就可以看出,包括托管返回值、.NET 64 位编辑和 Continue, Async Callstacks 增强功能以​​及改进的任务窗口等很少。不幸的是,新的调试引擎仍然不支持一些场景,因此在这些情况下,您将不得不切换回旧引擎。

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

    请尝试以下设置,看看是否会出现相同的错误。

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

    • 然后选中调试/常规选项卡上的使用托管兼容模式。

    全局选项将强制使用旧引擎进行任何启动或附加。

    希望对你有帮助。

    【讨论】:

    • 我必须承认,事情发生了变化。而不是我上面描述的错误,我得到:Managed Debugging Assistant 'FatalExecutionEngineError' has detected a problem in 'C:\Program Files (x86)\IIS Express\iisexpress.exe'. Additional Information: The runtime has encountered a fatal error. The address of the error was at 0x6c0db403, on thread 0x54a8. The error code is 0xc0000005. This error may be a bug in the CLR or in the unsafe or non-verifiable portions of user code. Common sources of this bug include user marshaling errors for COM-interop or PInvoke, which may corrupt the stack. occurred
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多