无法在C#Web应用程序中执行Perl脚本

时间:2013-03-29 01:14:47

标签: c# perl iis iis-7

简单地说,我在使用C#Web应用程序中的输入参数执行Perl脚本时遇到问题。我从控制台应用程序执行代码没有问题,但在我的Web应用程序中,我没有收到任何响应。

我使用的代码是:

ProcessStartInfo cmdStartInfo = new ProcessStartInfo();
cmdStartInfo.FileName = "C:\gnu\perl.exe";
cmdStartInfo.Arguments = "run.pl --day=1 --format=2";
cmdStartInfo.RedirectStandardOutput = true;
cmdStartInfo.RedirectStandardError = true;
cmdStartInfo.RedirectStandardInput = true;
cmdStartInfo.UseShellExecute = false;
cmdStartInfo.CreateNoWindow = true;
cmdStartInfo.WorkingDirectory = TEMP_DIRECTORY;

Process cmdProcess = new Process();
cmdProcess.StartInfo = cmdStartInfo;
cmdProcess.OutputDataReceived += cmd_DataReceived;
cmdProcess.EnableRaisingEvents = true;

// Start
cmdProcess.Start();
cmdProcess.WaitForExit();

static void cmd_DataReceived(object sender, DataReceivedEventArgs e)
{
    // Breakpoint to DEBUG here
    string result = e.Data;
}

我正在使用IIS 7.我想知道它是否存在问题?我正在使用Identity Impersonate和Windows身份验证。

1 个答案:

答案 0 :(得分:0)

这最终成为权限问题。我必须使用Perl命令授予包含要执行的脚本的目录的权限。

例如,权限将被赋予目录,在此示例中为dir1:

perl.exe dir1/script.pl

最初我只对包含perl.exe文件的文件夹授予了权限,但该文件无法解决问题。