调用SignedCMS.Decode需要太长时间

时间:2014-09-10 14:55:33

标签: c# .net digital-signature pkcs#7

有没有理由调用SignedCMS.Decode需要15秒或更长时间?我有以下代码:

SignedCms signedCms = new SignedCms();
signedCms.Decode(postedData);

其中postingData是已签名CMS消息的字节数组。有时函数调用会立即返回,但大多数情况下,返回需要10-15秒才会导致邮件发件人超时。

无论调试器是否附加到进程,似乎都会发生这种情况。

1 个答案:

答案 0 :(得分:1)

所以我把它缩小到了Decode函数调用的一个函数中的Oid实例化。该来源位于Reference Source .NET Framework 4.5.1

我测试使用:

System.Security.Cryptography.Oid oid = new System.Security.Cryptography.Oid("1.2.840.113549.1.7.1");

我还发现this link有类似的问题。

有趣的是,断开我的无线适配器,Oid实例化立即发生,这让我相信它可能与网络/ DNS相关(我不知道Oid实例正在做什么)。重新连接我的适配器后,SignedCms.Decode正常工作。我读到的另一个选项是从域中删除我的计算机然后重新加入。天文尚未尝试过。

也许这会帮助其他任何有相同(或类似)问题的人。