Выполнение процесса в Windows Server 2003 и ii6 из кода - ошибка разрешений

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

person kurupt_89    schedule 04.04.2012    source источник


Ответы (1)


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

person tsells    schedule 04.04.2012