【发布时间】:2012-12-29 13:32:18
【问题描述】:
我正在开发 WCF 服务,其传输安全性托管在 Windows 2008R2 下的 IIS 7.5 上。我有一个证书,在 IIS 7.5 中生成,存储在本地文件夹中。
当我使用具有传输安全性的 BasicHttpBinding 或 WSHttpBinding 时 - 一切正常。但是当我将其更改为 NetTcp 时,我得到了一个异常:
CryptographicException 'Keyset does not exist'.
经过一番谷歌搜索后,我发现问题可能是因为我的 NETSERVICE IIS 帐户对我的证书的私钥没有权限。
解决方案可能是通过右键单击我的证书并选择“管理私钥”选项来设置 MMC 中的访问权限。但是选择菜单中没有这样的选项!!!证书是在管理员帐户下创建的,我在哪里打开它 - 它说它有私钥。我做错了什么?
【问题讨论】:
-
希望对您有所帮助:forums.asp.net/t/1832898.aspx
-
谢谢,但结果相同(((
-
为拥有私钥的文件赋予账户权限。不要立即记住它存在于哪里,但它是可以找到的。
-
如何找到这个文件?在 Windows server 2003 (geekswithblogs.net/technetbytes/archive/2011/10/12/147281.aspx) 中这很容易,但在 Windows server 2008 中我找不到它的位置?也许你知道它在哪里?
-
在连接到远程服务器的证书存储时似乎不起作用,即使以管理员身份运行并使用管理员凭据登录也是如此。此外,如果您选择“导出”,则“导出私钥”将显示为灰色:-(
标签: c# wcf wcf-security x509certificate