通过Windows服务添加数字签名时,应用程序无响应

时间:2019-02-11 09:46:33

标签: c# .net windows-services digital-signature

我正在开发一种数字签名解决方案,允许最终用户在PDF文档中添加数字签名。为此,我开发了一个基于.NET Desktop的应用程序,该应用程序运行良好。

然后,我在Windows服务中使用了相同的代码,并尝试向PDF添加签名,但是该服务变得无响应,并在特定的代码行处暂停。

我在签名PDF文件时使用了数字签名令牌。

这是我的代码-

private static void SignTestMessage(X509Certificate2 cert)
    {
        try
        {
            byte[] content = new byte[]
            {
                166,
                100,
                234,
                184,
                137,
                4,
                194,
                172,
                72,
                67,
                65,
                14
            };
            ContentInfo contentInfo = new ContentInfo(content);
            SignedCms signedCms = new SignedCms(contentInfo);
            signedCms.ComputeSignature(new CmsSigner(cert)
            {
                IncludeOption = X509IncludeOption.EndCertOnly
            }, false);
            signedCms.Encode();
        }
        catch (Exception ex)
        {
            throw new Exception(ex.Message);
        }
    }

注意:我正在使用用户凭据(而不是系统帐户)运行Windows服务,以便它可以检测/从个人商店获取证书。

在调试此Windows服务时,我知道在代码ComputeSignature的这一行,它停在那里,此后什么也没发生。

0 个答案:

没有答案