2010-12-16 83 views
0

我想在IIS7中托管WCF服务。直到我指定一切正常在web.config文件中的以下内容:IIS7找不到X.509证书,尽管自托管WCF可以

<serviceCredentials> 
     <serviceCertificate findValue="MyCert" 
          storeLocation="CurrentUser" 
          storeName="My" 
          x509FindType="FindBySubjectName" /> 
    </serviceCredentials> 

然后我得到一个异常System.InvalidOperationException:使用下面的搜索条件找不到X.509证书:STORENAME“我” ,StoreLocation'CurrentUser',FindType'FindBySubjectName',FindValue'MyCert'

顺便说一句 - 我用这个相同的证书(存储在相同的位置)与自托管WCF服务没有任何问题。

回答

2

您可能选择了错误的storeLocation。你尝试过storeLocation =“LocalMachine”吗?

如果这不起作用,那么你需要给你的iis工作进程。我需要在iis6中托管WCF服务时使用Username和共享证书安全性来执行此操作。

+0

我需要将证书放入本地计算机的个人存储。谢谢你们 – user437291 2010-12-17 19:47:03

2

这可能是因为您的服务在IIS7中运行的身份无法访问商店。通常这个标识是ApplicationPoolIdentity。

+1

这可能会有所帮助http://serverfault.com/questions/131046/how-to-grant-iis-7-5 - 获取证书在证书店 – 2010-12-17 00:56:11

1

尝试授予对应用程序池运行时的帐户的证书私钥的读访问权限。在证书MMC管理单元中,找到证书,右键单击,管理私钥...