Приложение перестает отвечать на запросы при добавлении цифровой подписи через службу Windows - PullRequest
0 голосов
/ 11 февраля 2019

Я разрабатываю решение для цифровой подписи, которое позволяет конечному пользователю добавлять цифровую подпись в документ 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 она останавливается там и после этого ничего не происходит.

...