在我之前的部署环境中一切顺利运行后,我已将我的站点移动到服务器2008 R2盒子上......

我有一个启用Silverlight的wcf服务(在IIS中)调用另一个外部服务,但我的wcf服务无法找到访问外部服务所需的证书 .

证书 CN=blahblah.com, OID.1.2.840.113549.1.9.2=MyName, OU=MyCompany, O=Provider Group 可能没有能够进行密钥交换的私钥,或者该进程可能没有私钥的访问权限 . 详情请见内部异常 .

我的网站(及其wcf服务)在自定义应用程序池下运行,我已添加该应用程序池帐户以访问证书 . 我已经通过winhttpcertcfg.exe工具的-l开关验证了此帐户的访问权限 .

证书位于本地计算机 - 个人(我的),我的web.config文件匹配此:

<clientCertificate findValue="blahblah.com" storeLocation="LocalMachine" 
 storeName="My" x509FindType="FindBySubjectName" />

我也玩了 FindPrivateKey.exe 工具,发现私钥的文件路径(这是 D:\Users\\myaccountname\AppData\Roaming\Microsoft\Crypto\RSA) ,我在这条路径上给了"everyone"权限,但仍然没有运气 .

使用ProcMon,我可以看到正在查询文件夹 D:\Users\\theApplicationPoolAccount\AppData\Roaming\Microsoft\Crypto\RSA\ . 当我调用我的服务以便查看当前用户时(这很奇怪),因为我的web.config清楚地指定在 LocalMachine\My 中查找证书...

当我安装证书时,最初它进入 CurrentUser\My 商店(我没有选择安装到 LocalMachine\My ),但我可以将证书拖到 LocalMachine\My 商店

有没有人有幸在Windows Server 2008中读取证书的私钥?