Ale*_*lex 20 c# wcf wcf-security x509certificate
我正在使用Windows 2008R2下IIS 7.5上托管的Transport Security开发WCF服务.我有一个在IIS 7.5中生成的证书,该证书存储在Local文件夹中.
当我使用BasicHttpBinding或WSHttpBinding与传输安全 - 一切正常.但当我将其更改为NetTcp时,我得到一个例外:
CryptographicException 'Keyset does not exist'.
Run Code Online (Sandbox Code Playgroud)
经过一些谷歌搜索后,我发现问题可能是因为我的NETSERVICE IIS帐户没有预先设置我的证书的私钥.
解决方案是通过右键单击我的证书并选择"MANAGE PRIVATE KEYS"选项来设置MMC中的访问权限.但是在选择菜单中没有这样的选项!证书是在管理员帐户下创建的,我打开它 - 它说它有私钥.我做错了什么?
Man*_*ain 17
转到服务器 - >单击开始 - >运行 - >键入mmc - >输入 - >选择带本地计算机的证书管理单元选项 - >转到控制台根目录 - >证书 - >个人 - >证书 - >选择证书 - >右键单击 - >转到所有任务 - >管理私钥 - >添加权限
我第一次尝试添加证书时,缺少"管理私钥"选项.最后通过以下两个步骤纠正它.
以管理员身份管理MMC.文件 - >添加或删除管理单元 - >选择证书 - >单击添加按钮.这将打开一个对话框.此管理单元将始终管理证书:选择计算机帐户.选择要管理此管理单元的计算机:选择"本地计算机".单击完成.点击确定.
在个人文件夹中导入证书(所有任务 - >导入)时,请确保导入.pfx文件而不导入.cer文件.