none
WCF应用X.509证书在IIS7宿主下的问题 RRS feed

  • 问题

  • 我的WCF服务要启用X.509证书.

    我的开发环境是Windows7 + IIS7

    在Console控制台宿主中,什么问题都没有.

    但是把服务部署在IIS中,就会发生以下错误:

    1.证书放在CurrentUser 就会报 
    无法使用以下搜索标准找到 X.509 证书: StoreName“My”、StoreLocation“CurrentUser”、FindType“FindBySubjectName”、FindValue“WCFServerCertificate”。
    2.证书放在 LocalMachine 中就会报 
    ArgumentException: 证书“CN=MyServer”必须具有能够进行密钥交换的私钥。该进程必须具有访问私钥的权限。

    请问我要如何解决问题,是IIS没有权限吗?还是其它的问题

    只要我不醒来,世界就不存在
    2010年3月15日 6:33

答案

  • IIS7默认的账户是Network Service,可能没有对Store里证书私钥的访问权限。
    你可以首先确认一下host wcf 的账户,然后配置store里证书私钥的访问权限,修改方法如下:
    1. 用MMC打开证书Store
    2. 找到指定的证书,右键 All Tasks-> Manage Private Keys...
    3. 在出现的页面里,添加指定账户的访问权限。


    Mog Liang
    • 已标记为答案 Mog Liang 2010年3月19日 9:05
    2010年3月17日 5:49

全部回复

  • 自己制作的临时证书?
    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
    欢迎访问老徐的中文技术博客:Welcome to My Chinese Technical Blog
    欢迎访问微软WCF中文技术论坛:Welcome to Microsoft Chinese WCF Forum
    欢迎访问微软WCF英文技术论坛:Welcome to Microsoft English WCF Forum
    2010年3月15日 16:51
    版主
  • IIS7默认的账户是Network Service,可能没有对Store里证书私钥的访问权限。
    你可以首先确认一下host wcf 的账户,然后配置store里证书私钥的访问权限,修改方法如下:
    1. 用MMC打开证书Store
    2. 找到指定的证书,右键 All Tasks-> Manage Private Keys...
    3. 在出现的页面里,添加指定账户的访问权限。


    Mog Liang
    • 已标记为答案 Mog Liang 2010年3月19日 9:05
    2010年3月17日 5:49