我正在尝试在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服务,没有任何问题。
答案 0 :(得分:2)
可能是您的服务正在运行的身份,因为在IIS7中无权访问该商店。通常,此标识为ApplicationPoolIdentity。
答案 1 :(得分:2)
您可能选择了错误的storeLocation。你试过storeLocation =“LocalMachine”吗?
如果这不起作用,那么您需要提供您的iis工作进程。当我在使用具有共享证书安全性的用户名的iis6中托管WCF服务时,我需要这样做。
答案 2 :(得分:1)
尝试授予应用程序池运行的帐户的证书私钥的读访问权限。在证书MMC管理单元中,找到证书,右键单击,管理私钥......