WCF错误:'证书'我的证书'可能没有能够进行密钥交换的私钥

Bil*_*tin 18 c# iis wcf wcf-binding wcf-security

我有一个WCF服务,我试图在我们的生产Web服务器(IIS6)上托管.我已经设置了网络并将我们的证书绑定到网络上.当我尝试浏览服务URL时,我在事件日志中收到以下错误:

异常消息是:证书'CN = .mydomain,OU = Secure Link SSL Wildcard,OU = IT,C = US'可能没有能够进行密钥交换的私钥,或者该进程可能无法访问私钥的权利.有关详细信息,请参阅内部异常.. ---> System.ArgumentException:证书'CN = .mydomain.com,OU =安全链接SSL通配符,OU = IT,O = mydomain,C = US'可能不会具有能够进行密钥交换的私钥,或者该进程可能没有私钥的访问权限.详情请见内部异常.---> System.Security.Cryptography.CryptographicException:句柄无效.

我已经确认ASP.Net 1.1,2和4都在'Web服务扩展'中设置为'允许'.我还确认证书已在iis中设置,并显示"您有一个与此证书相对应的私钥".此外,执行权限设置为"脚本和可执行文件".

And*_*erd 37

我遇到了这个问题,结果发现服务运行的帐户没有访问证书私钥的权限.

以下是我用来解决它的步骤:

  • 启动Cetificate经理.通过运行MMC,激活[文件] - [添加/删除管理单元...],然后添加"证书",在随后的向导对话框中选择"计算机帐户"和"本地计算机"来执行此操作.
  • 在证书管理器中,右键单击相关证书并激活[所有任务] - [管理私钥]
  • 这为您提供了权限窗口.单击添加
  • 添加运行此服务的帐户名称或组.