服务无法读取证书存储



我们希望创建一个服务,该服务将自动从存储中删除证书(使用 c#)。当我们手动运行.exe时,一切都很顺利。但是,当我们从该.exe创建服务时,它不会读取存储中的证书,并且一直说它是空的。

我们能做些什么来纠正这种情况?

下面是读取存储,然后删除所有找到的证书的部分:

X509Store store = new X509Store(StoreLocation.CurrentUser);
store.Open(OpenFlags.ReadWrite);
X509Certificate2Collection storecollection = (X509Certificate2Collection)store.Certificates;
foreach (X509Certificate2 x509 in storecollection)
{
    store.Remove(x509);
}
store.Close();

它正在正确读取存储。问题是您的服务(安装时)在不同的用户下运行。他的证书存储是空的。当您通过双击运行服务时.exe它会在您的帐户下运行。

如果您愿意,可以将服务设置为在您的帐户下运行。您可以在"登录"选项卡上的服务属性中执行此操作。

最新更新