У меня проблема с выполнением процесса с нашего тестового сервера. На моем локальном хосте с использованием Windows XP и iis5.1 я изменил файл machine.config, чтобы он содержал строку -
I then changed the login for iis to log on as local system account and allow server to interact with desktop. This fixed my problem executing a process from code in xp.
При использовании того же метода на Windows Server 2003 (в режиме изоляции iis6) процесс не выполняется.
Вот код для выполнения процесса (я протестировал входные данные для iecapt через командную строку, и было сгенерировано изображение) -
public static void GenerateImageToDisk(string ieCaptPath, string url, string path, int delay)
{
url = FixUrl(url);
ieCaptPath = FixPath(ieCaptPath);
string arguments = @"--url=""{0}"" --out=""{1}"" --min-width=0 --delay={2}";
arguments = string.Format(arguments, url, path, delay);
ProcessStartInfo ieCaptProcessStartInfo = new ProcessStartInfo(ieCaptPath + "IECapt.exe");
ieCaptProcessStartInfo.RedirectStandardOutput = true;
ieCaptProcessStartInfo.WindowStyle = ProcessWindowStyle.Hidden;
ieCaptProcessStartInfo.UseShellExecute = false;
ieCaptProcessStartInfo.Arguments = arguments;
ieCaptProcessStartInfo.WorkingDirectory = ieCaptPath;
Process ieCaptProcess = Process.Start(ieCaptProcessStartInfo);
ieCaptProcess.WaitForExit(600000);
ieCaptProcess.Close();
}