简单地说,我在使用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身份验证。
答案 0 :(得分:0)
这最终成为权限问题。我必须使用Perl命令授予包含要执行的脚本的目录的权限。
例如,权限将被赋予目录,在此示例中为dir1:
perl.exe dir1/script.pl
最初我只对包含perl.exe文件的文件夹授予了权限,但该文件无法解决问题。