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