0

を使用してASP.NETアプリから実行可能ファイルを実行する必要がありますProcess。.exeファイルはASP.NETプロジェクト内にあります-'ProjectRoot/Utilities /utility.exe'

このコードが実行に失敗するのはなぜですか?

string path = Server.MapPath("/Utilities/");
string args = " etc etc";
Process p = Process.Start(new ProcessStartInfo(path + "utility.exe", args));
p.WaitForExit(3000);

私もやってみ"\\utility.exe"ました。

4

2 に答える 2

0

ここで確認することがいくつかあります。

まず、それstring path = Server.MapPath("/Utilities/");が有効なパスでありutility.exe、正しい場所にあることを確認することです。

例外をスローしないと言ったので、の呼び出しはutility.exe 少なくとも有効である必要があります。ただし、 (コーディング方法に応じて)順番に発生する例外を飲み込むutility.exe 可能性があります。これが、機能していないように見える理由である可能性があります。

その上、args変数はアクセスするファイルまたはその他のリソースを指定している可能性がありますutility.exe。例外を飲み込む場合、アプリケーションプールIDがリソースにアクセスできない場合は、アクセス許可エラーをマスクしている可能性があります。

于 2012-10-14T01:06:02.493 に答える
0

答えは、発生した例外の種類によって異なります。ちなみに、アプリケーションプールのid(windowsアプリでのプロセスと対等な位置付け)が制限付きユーザー(デフォルトのまま)に設定されていると、セキュリティ上の問題でサーバー上でプロセスを実行することができません。 .

結果が分かっていて、サーバーが自分のものである場合は、アプリケーション プールの ID を承認されたユーザーに変更できます。そうすれば、アプリケーションはためらうことなくそのようなことを行うことができます。

乾杯

于 2012-10-13T19:50:06.810 に答える