我有一个由Windows服务托管的 wcf服务。我们使用RSA算法加密的私人证书加密密码。当用户A远程登录时,证书( pfx 文件)安装在服务器上。应用程序抛出异常" 密钥无法在指定状态下使用"当它试图获取私钥时。 Windows服务在帐户本地系统下运行。当在程序集中调用解密函数时,它在帐户A下运行(模拟用于wcf服务中的不同调用)。该服务器是64位Windows Server 2008 R2。相同的代码适用于在Windows Server 2012服务器上安装的其他应用程序中的解密。
我已经完成了以下操作,但最终会收到相同的错误消息:
需要专家的帮助!我可以使用没有证书的旧加密,但这不是那么安全。使用这么多时间而没有任何结果是非常令人沮丧的......
最好的问候,克里斯汀。
答案 0 :(得分:0)
我通过创建一个小应用程序来解决这个问题,该应用程序只执行了我在wcf服务中的代码失败的特定事情。每次它工作我都增加了一些复杂性。这样我就知道wcf服务必须像上面提到的用户A一样运行。此外,我发现如果没有我在WCFService上模仿的一些要求,它会工作。对于每种服务方法,我都有这个属性: [OperationBehavior(Impersonation = ImpersonationOption.Required)]。我仍然使用来自调用此WCFService的应用程序的模拟(因为WCF服务在域X中,并且调用它的应用程序在域Y中),但是当我删除属性时它可以工作。
克里斯汀:)