我在商店中创建可以在WCF中使用的测试X509Certificate时遇到问题。当我尝试在WCF通道工厂中使用它时,我创建的所有证书都有相同的结果 - “X.509证书中没有私钥”。
channelFactory.Credentials.ClientCertificate.SetCertificate(StoreLocation.CurrentUser, StoreName.TrustedPeople, X509FindType.FindBySubjectName, "MyClientCert");
我已经尝试将证书放在LocalMachine中,让它自我签名而不是测试CA.没有任何帮助,证书总是具有等于false的属性HasPrivateKey。
更新 按照http://msdn.microsoft.com/en-us/library/ff650751.aspx的说明,我已经解决了上述问题。但是,当我尝试将消息发送到队列时,我现在遇到了一个新问题,现在生成了一个新错误。错误是:
发送到队列时发生错误:加密功能失败。 (-1072824272,0xc00e0030)。确保已安装并运行MSMQ。如果要发送到本地队列,请确保该队列存在所需的访问模式和授权。
同样,如果我使用真正的证书而不是测试证书,那么这个过程是有效的,所以它似乎必须与证书相关。