ASP.NETで別プロセスとしてexeを動作させ、そのexeの標準出力を得たいと考えています。
具体的に想定している使用ケースは以下の通りです。
- webページに利用者がアクセスし、文字列を入力する
- 入力された文字列をwindowsサーバ側にインストールしてあるexeファイル(コンソールアプリケーション)に引数として渡し、実行する
- 得られた出力をwebページ上に表示する
ここでVisualstudio上でのデバッグはうまく動作し、タスクマネージャでもコンソールウィンドウホストが起動することが確認できているのですが、いざ発行してasaxファイルを配置→実行しても、なにも値が返ってきません。コンソールウィンドウホストが立ち上がる気配もありません。
ASP.NETではexeを呼び出すような処理を記述する場合、何か気を付けたり特殊な処理をしなければいけないのでしょうか。
どうぞご教示ください。よろしくお願いします。
開発はwindows serverにインストールしたvisualstudioでおこなっています。
参考までに問題個所のソースを記述します。
lang
1string FileName = @"C:\Program Files (x86)\動作させたい.exe"; 2 3ProcessStartInfo psInfo = new ProcessStartInfo(); 4Process mp = new Process(); 5 6mp.StartInfo.FileName = FileName; 7mp.StartInfo.Arguments = "引数"; 8mp.StartInfo.UseShellExecute = false; 9mp.StartInfo.RedirectStandardInput = true; 10mp.StartInfo.RedirectStandardOutput = true; 11mp.StartInfo.CreateNoWindow = false; 12mp.Start(); 13 14mp.StandardInput.WriteLine("ユーザーが入力した文字"); 15mp.StandardInput.Close(); 16 17String s = mp.StandardOutput.ReadToEnd(); 18//→sをブラウザに表示させる
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/03/22 02:24