Windows 服务无法访问证书存储

标签 windows wcf service windows-services truststore

我正在尝试使用 winldap 向 Opends 服务器进行身份验证,我将自签名证书安装到系统受信任的根证书、个人存储等(如果适用)。 ldp.exe 是微软的一个工具,适用于 ssl 和 tls 连接。我的 PC 中有 2 个用户帐户(管理员和管理员),除了我的 Windows 服务外,这两个用户帐户的一切都正常。

我的 Windows 服务(图书馆管理程序)无法验证服务器证书。但我的示例代码可以工作(这是类似于我的Windows服务的一小部分代码),

我在这个网站上看到了类似的场景以及他们的建议( https://msdn.microsoft.com/en-us/library/aa702621.aspx )。

我的服务在服务选项卡中显示组名称为 N/A,在任务管理器的进程选项卡中显示用户名为 SYSTEM,我不知道该怎么做,请有人帮助我解决此问题。

提前致谢。

最佳答案

实际上Windows有3种类型的证书存储本地用户、系统、服务。 通常Windows服务作为一个名为System的特殊帐户运行(我们也可以让它在特定的用户帐户上运行)

自签名证书仅添加到本地用户帐户(如上所述,对于管理员和管理员)。因此 Windows 服务无法验证证书。

解决方案是将证书添加到系统存储中。

程序运行良好

关于Windows 服务无法访问证书存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32579014/

相关文章:

python - 从 python(Windows 和 Linux)运行 excel 宏

c# - 将 .NET Dictionary<string, string> 序列化为 JSON 键值对对象

c# - 如何将具有循环引用的对象结构序列化为 Json?

service - 更改 beanstalkd 默认 TTR

c# - Web 服务/wcf 服务,返回数据集是否更好?

sql - 在不知道机器主机名的情况下在 SQL 脚本中指定 Windows 用户名

windows - 以编程方式找出窗口的键盘快捷键

java - WCF 与 Spark 集成

xml - Symfony 2 在 service.xml 中传递数组

windows - 使用 EnableDelayedExpansion 时变量修饰符的正确语法