1

簡単に言えば、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 認証を使用しています。

4

1 に答える 1

0

これは最終的に権限の問題になりました。Perl コマンドを使用して実行するスクリプトを含むディレクトリにアクセス許可を付与する必要がありました。

たとえば、この例ではディレクトリ dir1 に権限が付与されます。

perl.exe dir1/script.pl

当初、perl.exe ファイルを含むフォルダーにのみアクセス許可を付与していましたが、問題は解決しませんでした。

于 2013-05-07T17:03:19.583 に答える