我们创建了一个实用程序来对XBAP清单文件进行签名。这是它执行的以下代码:
cert = new X509Certificate2(certFilePath, password, X509KeyStorageFlags.MachineKeySet);
SecurityUtilities.SignFile(cert, null, manifest.SourcePath);SignFile方法需要两分钟以上才能完成。我们之前使用了Thawte authenticode证书来签署我们的清单。切换到VeriSign后,出现此问题。此外,当Visual Studio在构建过程中对XBAP清单进行签名时,通常需要7到9分钟才能完成。
我试过把私钥放在本地电脑商店里。我已经尝试将中间VeriSign代码签名证书放在中间证书颁发机构存储中。
以前有没有人经历过这种情况和/或有关于如何解决这个问题的想法?
发布于 2012-03-21 20:37:24
我相信我的问题是由执行此代码的服务器上缺乏互联网访问引起的。使用数据包分析器时,我注意到在对应用程序和/或Windows进行签名时,会尝试访问VeriSign的certificate revocation lists (CRLs)和Online Certificate status Protocol (OCSP)。这些操作正在超时。此代码签名多次发生,因此导致延迟更长。允许通过fire访问VeriSign应该可以解决这个问题。
发布于 2011-07-18 03:18:44
我向微软的ClickOnce询问了你的问题(尽管它本身并不是关于C/O的)。他说,如果你在证书上加时间戳,它可能会试图连接到时间戳服务器,这可能会减慢速度。在Visual Studio中,您可以在项目的一个选项卡中指定它,并在签名时使用它。
发布于 2014-04-01 11:36:48
实际上,除了拥有internet连接和检查CRL之外,您还需要在服务器上安装证书。我们有一个服务器也有类似的问题。执行SignFile方法不需要一到两分钟的时间,但每次调用需要10秒,需要20-30秒。在我安装证书之后,该方法现在为每个call...so花费大约百分之二百分之一秒,而对这些方法的两个或三个调用只需要几分之一秒。
https://stackoverflow.com/questions/6523957
复制相似问题