我有一些代码可以调用使用X.509证书保护的第三方web服务。
如果我直接调用代码(使用单元测试),它可以正常工作。
部署后,将通过WCF服务调用此代码。我已经添加了第二个调用WCF服务的单元测试,但是当我调用第三方web服务上的方法时,它会失败并显示CryptographicException
,消息"Keyset does not exist"
。
我假设这是因为我的WCF服务将尝试使用与我不同的用户调用第三方web服务。
有人能在这个问题上提供更多的信息吗?
发布于 2009-12-07 18:52:42
我昨晚也有同样的问题。私钥上的权限设置正确,除了密钥集不存在错误外,一切都很正常。最后,证书首先导入到当前用户存储区,然后移动到本地机器存储区。但是-这并没有移动私钥,它仍然在
C:\Documents and settngs\Administrator...
而不是
C:\Documents and settngs\所有用户...
尽管正确设置了密钥的权限,但ASPNET无法访问它。当我们重新导入证书以便将私钥放在All users分支中时,问题就消失了。
发布于 2014-01-12 05:51:43
在尝试从Visual Studio运行WCF应用程序时也遇到了同样的问题。通过以管理员身份运行Visual Studio解决了此问题。
发布于 2013-07-17 21:29:42
完全令人沮丧的是,我遇到了同样的问题,并尝试了上面的大部分方法。导出的证书正确地具有读取C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys
中的文件的权限,但事实证明它没有文件夹的权限。添加了它,并且它起作用了
https://stackoverflow.com/questions/602345
复制相似问题