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