IIS7找不到X.509证书,即使自托管WCF也可以

时间:2010-12-16 18:39:52

标签: wcf iis-7

我正在尝试在IIS7中托管WCF服务。一切正常,直到我在web.config文件中指定了以下内容:

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

然后我得到一个异常 System.InvalidOperationException:使用以下搜索条件找不到X.509证书:StoreName'My',StoreLocation'InfurrentUser',FindType'FindBySubjectName',FindValue'MyCert'

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

3 个答案:

答案 0 :(得分:2)

可能是您的服务正在运行的身份,因为在IIS7中无权访问该商店。通常,此标识为ApplicationPoolIdentity。

答案 1 :(得分:2)

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

如果这不起作用,那么您需要提供您的iis工作进程。当我在使用具有共享证书安全性的用户名的iis6中托管WCF服务时,我需要这样做。

答案 2 :(得分:1)

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