【发布时间】:2011-05-15 06:59:19
【问题描述】:
首先让我承认这个问题与这个问题几乎完全相同:
wcf certificate Keyset does not exist problem after reboot
但我已经阅读了它,它不适用。
我有一个使用 wsHttpBinding 的 WCF 客户端和服务,使用证书和 PeerTrust 进行身份验证。该服务托管在单独的 IIS 服务器上。客户端在我的机器上。我安装了正确的证书。我在我的用户帐户下安装并运行所有东西(我在管理员组中)。一切正常。
但是,当我在晚上注销机器并在早上重新登录并尝试以我自己的身份运行我的客户端应用程序时,我收到此错误:
{“证书‘[客户端证书]’可能没有能够进行密钥交换的私钥,或者进程可能没有私钥的访问权限。请参阅内部异常了解详细信息。”}
内部异常说:{“Keyset 不存在”}
我可以以管理员身份运行该应用程序并且它可以工作。
但是,如果我使用 MMC 管理单元删除,然后再次导入证书,我可以像我自己一样运行客户端,没有错误。
我可以注销和登录,同样的事情不断发生。在我删除之前它不起作用,然后再次导入证书。
我在客户端应用程序中所做的唯一不是“标准”的事情是我没有使用 WCF 的配置文件。我正在用代码设置一切。但这实际上只涉及“读取”证书,所以它不应该有所作为。
所以我的问题是,为什么注销似乎会使我自己作为证书用户无效?这显然会在我分发客户端时出现问题,并且在注销一次后没有人可以使用该应用程序。
【问题讨论】:
标签: wcf certificate x509certificate