2017-09-21 1 views
0

コマンドライン引数に基づいてファイルを変換するネイティブEXEがあります。私は入力ファイルと出力ファイルの完全なパス名を与える方法を知っていますが、いくつかのボタンが押されたときにそのようなEXEをアプリケーションサービスから実行し、出力ファイルが作成されるまで待つことはできますか? DLLへの変換はオプションではありません。Azure App ServiceネイティブEXEを実行してファイルを変換する

答えて

1

私が知る限り、アズールアプリサービスでネイティブのexeを実行できます。

しかし、パラメータをネイティブのexeに直接渡すことはできませんでした。

ユーザが入力パラメータを入力するには、Webアプリケーションなどを記述する必要があります。

次に、Process.Start methodを使用してexeを実行できます。

このコードサンプルを参照する方法については、このコードサンプルを参照してください。

ASP.NET MVCを使用して入力パラメータを取得し、そのパラメータをEXEに送信して結果を取得します。

public ActionResult Index() 
    { 


     var proc = new Process 
     { 
      StartInfo = new ProcessStartInfo 
      { 
       FileName = Server.MapPath("/exe/Sum.exe"), 
       //Arguments could be replaced 
       Arguments = "1 2", 
       UseShellExecute = false, 
       RedirectStandardOutput = true, 
       CreateNoWindow = true 
      } 
     }; 

     proc.Start(); 
     while (!proc.StandardOutput.EndOfStream) 
     { 
      string line = proc.StandardOutput.ReadLine(); 
      // do something with line 

      Response.Write(" The result is : " + line); 

     } 

     //await getResultAsync(); 
     return View(); 
    } 

結果:私に希望を与え

+0

おかげで、。私はそれを試してみる。私が使用するEXEは、RTF用のRichEditコントロールなど、処理のためにいくつかの隠れたウィンドウとコントロールを作成します。それが主な理由でしたが、DLLで動作しませんでした。 Azureはそれを許可しませんが、他のWebホストは許可します。私はそのようなことがexeで許可されるのだろうかと思います。 – user173399

+0

内部的に隠されたRichEditを使用し、したがってGDI +呼び出しを使用するため、EXEが実行されません。 Azure Sandboxでは、https://stackoverflow.com/questions/28293505/process-start-in-azure-websiteで許可されていません。しかし、とにかく私は元の質問にGDI +は言及していないので、私はあなたの答えを受け入れます。 – user173399

関連する問題