0

複数のコンソール アプリケーションを起動するように設計された Windows サービスがあります。コンソール アプリケーションは、ファイル システム操作だけでなく、物理ログ ファイルにも書き込みます。

サービスがコンソールを起動すると、コンソールはファイル システムにアクセスできず、ログ ファイルには何も表示されません。

実行可能ファイルをダブルクリックしてコンソールを手動で起動すると、ログ ファイルへの書き込みに問題はありません。

ローカル システム、ローカル サービス、ネットワーク サービス、ローカル管理者アカウント、さらには自分のログイン資格情報でサービスを実行してみました。

これは、プロセスを起動するコードです。

Process p = new Process();
p.StartInfo.FileName = agent.AgentLocation; /// Physical path to executable
p.StartInfo.CreateNoWindow = true;
p.StartInfo.ErrorDialog = false;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.UseShellExecute = false;
p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
p.Start();
4

1 に答える 1

0

アップデート:

問題は、作業ディレクトリを次のように設定する必要があることが判明しました。

Process p = new Process(); 
p.StartInfo.FileName = agent.AgentLocation; /// Physical path to executable 
p.StartInfo.WorkingDirectory = agent.AgentLocation.Substring(0, agent.AgentLocation.LastIndexOf("\\") + 1);
p.StartInfo.CreateNoWindow = true; 
p.StartInfo.ErrorDialog = false; 
p.StartInfo.RedirectStandardError = true; 
p.StartInfo.RedirectStandardInput = true; 
p.StartInfo.RedirectStandardOutput = true; 
p.StartInfo.UseShellExecute = false; 
p.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; 
p.Start(); 
于 2012-05-22T19:57:56.660 に答える