Использование Pgp.exe из приложения MVC - PullRequest
0 голосов
/ 26 июля 2011

Мне было поручено преобразовать устаревшее приложение в mvc.Приложение использовало pgp.exe, чтобы подписать ввод пользователя и отправить его по электронной почте.Приложение работает локально и на тестовом сервере, но не работает на работающем сервере.Мне пришлось прыгать через такие обручи, как запуск определенного пользователя в пуле приложений, чтобы мы могли установить ключи в профиле пользователя, НО это работало.

По какой-то причине на живом сервере, который является Windows 2003 IIS 6 и идентичен серверу тестирования, происходит сбой.Проблема в том, что pgp.exe просто не подписывает и не создает файлы, которые я получаю из консоли.«Ошибка подписи» ??Когда я помещаю команду в окно оболочки, вошедшее в систему как пользователь пула приложений, она запускается без проблем (после борьбы с некоторыми разрешениями), но при запуске через сервер приложений / IIS mvc она завершается неудачно.Код, используемый для вызова процесса, приведен ниже.

        var startInfo = new ProcessStartInfo();
        startInfo.FileName = _pgpexeLocation;

        //startInfo.FileName = "pgp.exe";
        startInfo.Arguments = string.Format("-sta \"{0}\" -u keyuser-z keypass +COMPATIBLE +FORCE", _tempFilePath);

        startInfo.UseShellExecute = false;
        startInfo.RedirectStandardOutput = true;
        startInfo.LoadUserProfile = true;

        using (Process exeProcess = Process.Start(startInfo))
        {
            // TODO: set limit to wait for and deal with exit
            exeProcess.WaitForExit();

            //var stringItem = exeProcess.StandardOutput.ReadToEnd();
            //Logger.Info(stringItem);
        }

Я цепляюсь за соломинку здесь, надеясь, что кто-то делал что-то подобное раньше и может помочь.Я предполагаю, что это ключевое местоположение или местоположение файла, где-то не было обнаружено, но не уверен, что еще попробовать?

1 Ответ

0 голосов
/ 12 августа 2011

Оказывается, что, хотя пул приложений использовал определенного пользователя, и я установил ключи в папке appdata этих пользователей, когда я проверял базовый вызов процесса, он фактически пытался выбрать ключи из профиля пользователя по умолчанию.,Не уверен, что это был конфиг IIS или что-то подобное, но вместо этого переместил ключи и папку pgp в эти приложения?

...