| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: WinAPI и системное программирование > GPG CreateProcess из сервиса |
| Автор: Nimua 23.11.2007, 15:11 | ||
| Здравствуйте, не уверена что раздел верный... Есть проблема: есть сервис (служба), в ней иногда вызывается шифрование - вызываю GPG.exe (GnuPG) с помощью CreateProcess
Вот. обычно работает нормально. Но иногда случается вот такая ошибка, точнее получается ResCode не равный нулю GPG encryption failed. Code: 128 Error: 0 И все. после этого оно на этом застревает, то есть сервис пытается снова обработать файл, и снова ошибка шифрования. и так пока не перезапущу сервис.. |
| Автор: Snowy 23.11.2007, 16:34 |
| Ну что тут посоветовать. Проблема сервиса. В нём бага. Могу посоветовать только программно перезапустить сервис при ошибке... |
| Автор: Nimua 23.11.2007, 18:22 |
| так сервис то мой : )) в смысле TService как понять в чем именно глюк? При чем я не понимаю gpg внешний процесс, как он понимает что его инициирует тот же сервис, в смысле что может меняться при перезапуске сервиса такого что это влияет на CreateProcess?? |
| Автор: Rennigth 23.11.2007, 18:46 |
| Nimua, может происходит так что сервис не закончив рабуту с этим процессом пытается запустить его еще раз? А он в свою очередь использет какие-нибудь общие ресурсы... попробуй банально в критическу секцию запихнуть код создания процесса gpg.exe |
| Автор: Nimua 23.11.2007, 20:35 | ||
| To Rennigth: спасибо, если не поможет, то что сделала попробую. Прочитала в хелпе (если ничего не помогает прочтите наконец инструкцию), что после завершение CreateProcess обязательно надо делать CloseHandle для хэндлов в PROCESS_INFORMATION. Вставила после получения рес кода
посмотрю, что будет. думаю косяк был в этом. |