У меня возникла проблема с выполнением процесса с нашего тестового сервера. На моем локальном хосте с помощью Windows XP и iis5.1 я изменил файл machine.config, чтобы иметь линию -Выполнение процесса в Windows Server 2003 и ii6 из ошибки кода -
Затем я изменил логин для IIS, чтобы войти в систему как локальной системной учетной записи и позволяют серверу взаимодействовать с рабочий стол. Это фиксировало мою проблему, выполняющую процесс из кода в xp.
При использовании того же метода на сервере Windows 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();
}