簡単な質問ですが、ASPプロジェクトで起動しようとしているexeファイルはどこに配置しますか?binフォルダに表示されません。
4 に答える
あなたはへのフルパスを渡す必要がありますProcess.Start
:
Process.Start(Server.MapPath("~/bin/whatever.exe"));
ただし、~/bin/
.Netアセンブリを対象としています。一般に、外部EXEをに配置することをお勧めし~/App_Data/
ます。
プログラムはサーバー上でのみ実行でき、クライアントでは実行できないことに注意してください。
To avoid security concerns and multiple process running in parallel. from asp page i would rather prefer to queue up the request for process start in some table than have other process like windows service in background to pick it up from queue and execute.
Webサイトはサーバー上で実行されているため、何かをシェル化すると(ASP.NetアプリケーションでProcess.Start)、クライアントPCではなくサーバー上で開かれることに注意してください。
必ず本番環境でこれをテストし、サーバーでシェルプロセスを実行するとき(私はお勧めしません)、それらを閉じることを忘れないでください。そうしないと、サーバーで奇妙なエラーが発生します。
Path.Combine(Server.MapPath(Request.ApplicationPath), "PathToExeFromWWWRoot");