2013-03-29 69 views
1

簡單地說,我遇到了在C#Web應用程序中使用輸入參數執行Perl腳本的問題。我從控制檯應用程序執行代碼沒有問題,但在我的Web應用程序中,我沒有收到任何迴應。在C#Web應用程序中執行Perl腳本時遇到問題

我使用的代碼是:

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,我不知道這是一個問題在那裏?我正在使用身份模擬和Windows身份驗證。

+0

作爲更新,我可以在使用Visual Studio開發服務器時成功獲取信息,但不能在IIS服務器上獲取信息。 – Garrett

+0

如果CreateNoWindow爲false,它會工作嗎? ActivePerl帶有一個'wperl.exe',它在沒有控制檯的情況下工作,但我認爲'perl.exe'需要一個控制檯。 – ikegami

+0

你到底有什麼錯誤?你檢查錯誤流的信息? –

回答

0

這最終是一個權限問題。我必須對包含要使用Perl命令執行的腳本的目錄授予權限。

例如,權限將被賦予到該目錄,DIR1在這個例子:

perl.exe dir1/script.pl 

包含的perl.exe所在文件,該文件並沒有解決問題的文件夾上本來我只授予的權限。

+0

我有類似的問題,如何授予權限? –

相關問題