0

我在从我们的测试服务器执行进程时遇到问题。在使用 Windows XP 和 iis5.1 的本地主机上,我将 machine.config 文件更改为具有以下行 -

然后我将 iis 的登录名更改为以本地系统帐户登录并允许服务器与桌面交互。这解决了我从 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();
    }
4

1 回答 1

0

默认情况下,IIS 用户帐户具有拒绝权限。尝试将其关闭,并确保您对运行 IIS 应用程序池的帐户具有写入权限。我相信这是网络服务帐户。

于 2012-04-04T23:25:12.757 回答