我将工作中的WCF服务从我的开发环境转移到QA环境,包括证书(Root Authority,Root Auth撤销列表,服务证书 - 包括其PK)。
之后我找到了私钥usihg'FindPrivateKey',并为所有相关帐户提供了在文件系统级别访问私钥文件的完全权限。
我的应用程序因未处理的异常崩溃:System.InvalidOperationException:无法加载配置中指定的X.509证书标识。
我很难过,我想我已经涵盖了一切,但显然不是......
我在Windows服务主机和控制台应用主机上试过这个。同样的问题。
答案 0 :(得分:25)
我在Win 7上用VS2010 SP1编写的简单WFC服务中遇到了同样的错误。我找到的修复是添加
<dns value="localhost" />
到&lt; identity&gt; app.config部分
来源:http://social.msdn.microsoft.com/Forums/en-AU/wcf/thread/439539ef-e8d7-4e7d-b36e-b80acd401606
答案 1 :(得分:8)
这对我有用:
<identity>
<certificateReference storeName="My" storeLocation="LocalMachine" x509FindType="FindBySubjectName" findValue="xxxxxxxx" />
<dns value="localhost" />
</identity>
答案 2 :(得分:1)
这是一个教程,解释如何创建应该解决此问题的证书:
希望能够修复你需要的东西 - 即使你在6个多月前问过这个问题!
此致 乔
答案 3 :(得分:0)
您的证书通用名称是否与您的主机域名相匹配?
答案 4 :(得分:0)
我是WCF的新手,在创建简单的WCF服务时遇到了这个问题。只是想分享一些想法:
<强> 1。解决问题 - 如果您在Joe(上图)之前已经阅读了所有其他答案,您就知道如何解决问题;)没有证书
<强> 2。修复证书问题 - 我要感谢Joe分享了一个很棒的链接 "How To: Create and Install Temporary Certificates in WCF for Message Security During Development"