1

プロセスを開始するために使用している 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();
4

1 に答える 1

1

Web アプリケーションはどのユーザーの下で実行されていますか? このユーザーは、.config ファイルにアクセスするための適切な権限を持っていない可能性があります。ユーザーに正しいアクセス許可を与えるか、別のアカウントでアプリを実行してください。

更新: 問題を診断するには、Microsoft/sysinternals の Process Monitor を使用します。ファイルアクセス操作を監視できます。プロセス名やファイル名でフィルタリングできます。これにより、正しい方向に進むはずです。

于 2012-12-02T22:33:55.443 に答える