2012-04-04 1 views
0

У меня возникла проблема с выполнением процесса с нашего тестового сервера. На моем локальном хосте с помощью 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(); 
    } 

ответ

0

По умолчанию учетной записи пользователя IIS имеет привилегию отказать. Попробуйте отключить их, а также убедитесь, что у вас есть разрешение на запись для учетной записи, в которой IIS запускает пул приложений. Я считаю, что это учетная запись сетевой службы.