C# 控制台主机和windows服务主机上的证书问题
我有一个wcf服务,它托管在windows服务和控制台主机上。 出于安全原因,我使用证书 证书已正确安装在客户端计算机上。我使用控制台主机(用于测试)和windows服务主机。当我启动控制台主机时,一切看起来都很好,我的服务正常 但是,当我使用windows服务时。当我想启动我的服务时,它会导致一个错误,并且不允许服务运行。这个错误是我已经修复过的。但是,毫无理由,它已经开始弹出相同的错误 错误消息:C# 控制台主机和windows服务主机上的证书问题,c#,wcf,windows-services,wcf-security,C#,Wcf,Windows Services,Wcf Security,我有一个wcf服务,它托管在windows服务和控制台主机上。 出于安全原因,我使用证书 证书已正确安装在客户端计算机上。我使用控制台主机(用于测试)和windows服务主机。当我启动控制台主机时,一切看起来都很好,我的服务正常 但是,当我使用windows服务时。当我想启动我的服务时,它会导致一个错误,并且不允许服务运行。这个错误是我已经修复过的。但是,毫无理由,它已经开始弹出相同的错误 错误消息: System.ArgumentException: It is likely that cer
System.ArgumentException: It is likely that certificate 'CN=CertificateName' may not have a private key that is capable of key exchange or the process may not have access rights for the private key. Please see inner exception for detail. ---> System.Security.Cryptography.CryptographicException: Keyset does not exist
问题是,这个证书在控制台主机应用程序中运行良好,但它不适用于windows服务
如何通过windows服务使用此证书?感谢所有关注此问题的人 我设法找到了这个问题的解决办法。 在服务安装程序中,我为登录帐户选择了网络服务。所以,我需要做的只是给我的证书授予适当的权限,在我的情况下,它是网络服务帐户 您可以通过以下步骤分配权限: 打开mmc->添加/删除管理单元->证书->添加->在我的情况下本地计算机->证书所在的文件夹->右键单击证书->所有任务->管理私钥 ->以及其他权限分配步骤 编辑:如果使用X509Certificate2类将证书导入存储,您应该知道。如果您的情况与windows服务作为网络服务登录类似,请记住此标志 X509keystrageFlags.MachineKeySet 应设置为允许通过网络服务用户访问证书私钥
我希望它能有所帮助我已经编辑了你的标题。请看“”,其中的共识是“不,他们不应该”。谢谢@JohnSaunders