【问题标题】:Exception being generated from .net RSACryptoServiceProvider.Enrypt method从 .net RSACryptoServiceProvider.Enrypt 方法生成的异常
【发布时间】:2014-11-29 16:22:15
【问题描述】:

每隔一段时间,我的软件会由于以下消息的异常而崩溃:

"附加信息:运行时遇到了一个致命错误。错误的地址是0x72938d57,在线程0xe34上。错误代码是0xc0000005。这个错误可能是CLR中的错误或不安全或非用户代码的可验证部分。此错误的常见来源包括 COM-interop 或 PInvoke 的用户封送错误,这可能会损坏堆栈。

如果有这个异常的处理程序,程序可以安全地继续。"

它是从 .net RSACryptoServiceProvider.Encrypt 方法开始生成的。 要查看它,请参阅https://github.com/HadiModarres/MRelay/blob/master/ConsoleApplication9/EncryptedRelay.fs 第 94 行

我的问题是为什么会发生这种情况,我可以做些什么来捕获从这样的非托管代码生成的异常

【问题讨论】:

  • @ildjarn 是的,但我调用 rsa.Encrypt 的方法是同步的。
  • 一种晦涩的编程语言中的一个晦涩的错误。艰难的一个。
  • @GregS 实际上是由于该方法不是线程安全的,锁定对象显然不会在 let 绑定中执行任何操作。 ildjarn 删除了他的评论,所以我投票赞成你的评论:)

标签: exception f# rsa unmanaged rsacryptoserviceprovider


【解决方案1】:

转自评论:

rsa.Encrypt 不是线程安全的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-18
    • 1970-01-01
    相关资源
    最近更新 更多