プロセスを開始するために使用している Web ページがあります。このプロセスは、構成ファイルを含む .net 2.0 実行可能ファイルです。実行可能ファイルを単独で実行すると、エラーは発生しません。プロセスは実行可能ファイルを開始しています (ログ ファイルに書き込みを行っており、出力が生成されていることがわかります)。
実行可能ファイルが構成ファイルを参照しようとするとすぐに (ただし、Web ページから起動された場合のみ)、例外がスローされます (「構成システムの初期化に失敗しました」)。
System.Configuration.ConfigurationErrorsException: 構成ファイルの読み込み中にエラーが発生しました: アクセスが拒否されました。
私はちょっと困惑しています。実行可能ファイルを取得して構成ファイルをロードするにはどうすればよいですか?
ところで、現在のディレクトリがまだ実行可能ファイルのディレクトリであることを確認しました。
編集ここに私のコードがあります:
System.Diagnostics.Process p = new System.Diagnostics.Process();
p.StartInfo.UseShellExecute = true;
string mappedFile = Server.MapPath(@".\my.exe");
p.StartInfo.FileName = mappedFile;
p.StartInfo.WorkingDirectory = Server.MapPath(@".\");
p.StartInfo.RedirectStandardOutput = false;
string eco = COAuditBox.Text;
DateTime now = DateTime.Now;
string filename = eco + "_" + String.Format("{0:yyyyMMddHHmmss}", now) + ".txt";
string redirectUrl = "reports/" + filename;
string redirectFile = Server.MapPath(redirectUrl);
//File.WriteAllText(redirectFile, "TEST\t\n");
p.StartInfo.Arguments = eco + " \"" + redirectFile + "\"";
p.Start();
p.WaitForExit();