1

我在商店中创建可在 WCF 中使用的测试 X509Certificate 时遇到问题。当我尝试在 WCF 通道工厂中使用它时,我创建的所有证书都具有相同的结果 - “X.509 证书中不存在私钥”。

channelFactory.Credentials.ClientCertificate.SetCertificate(StoreLocation.CurrentUser, StoreName.TrustedPeople, X509FindType.FindBySubjectName, "MyClientCert");

我已经尝试将证书放在 LocalMachine 中,让它自签名与测试 CA。没有任何帮助,证书始终具有属性 HasPrivateKey 等于 false。

更新:按照http://msdn.microsoft.com/en-us/library/ff650751.aspx 上的说明,我已经解决了上述问题。但是,当我尝试将消息发送到队列时,我遇到了一个新问题,证书现在会生成一个新错误。错误是:

发送到队列时出错:加密函数失败。(-1072824272, 0xc00e0030)。确保 MSMQ 已安装并正在运行。如果要发送到本地队列,请确保队列存在并具有所需的访问模式和授权。

同样,如果我使用真实证书而不是测试证书,则该过程有效,因此它似乎必须与证书相关。

4

0 回答 0