2017-07-17 50 views
2

ユーザーリクエストが来たときに、Web APIにexeファイルを実行します。それは完全に動作していますが、私はサーバーにWeb APIをホストしているときに、ユーザーの要求が来るとexeファイルが実行されません。 IISサーバー上のWeb APIからexeファイルを実行するにはどうすればよいですか?ここでiisサーバーのWeb APIからexeファイルを実行していません

はコードを開始するプロセスです:

public static void Start(long campaign_id, long contact_id, string startDate, string endDate, string user) 
{ 
    try 
    { 
     //WindowStyle = ProcessWindowStyle.Hidden; 
     startInfo.FileName = "cmd.exe"; 
     startInfo.WorkingDirectory = @"C:\"; 
     startInfo.Arguments = "/c sparkclr-submit --master " + ConfigurationManager.AppSettings["SparkMaster"] + " --driver-class-path " + AppDomain.CurrentDomain.BaseDirectory + "Engine\\mysql.jar " + "--exe CmAnalyticsEngine.exe " + AppDomain.CurrentDomain.BaseDirectory + "Engine " + campaign_id + " " + contact_id + " " + startDate + " " + endDate + " " + user; 
     process.StartInfo = startInfo; 
     process.Start(); 
    } 
    catch (Exception e) 
    { 
     LogWritter.WriteErrorLog(e); 
    } 
} 
+0

実行する権限をiisユーザーに与える必要があります。 – Doruk

+0

私はiisユーザーのために、exeファイルとアプリケーションプールを持っていてもまだ動作していないディレクトリにアクセス権を与えています。 –

答えて

2

はどのようにexeファイルを起動していますか?エラーログがありますか?

Process.Startに動詞runasを使用して、exeファイルを管理者として実行することができます。

ProcessStartInfo proc = new ProcessStartInfo(); 
proc.WindowStyle = ProcessWindowStyle.Normal; 
proc.FileName = myExePath; 
proc.CreateNoWindow = false; 
proc.UseShellExecute = false; 
proc.Verb = "runas"; //this is how you pass this verb 
+0

@Milhailそれを行うにはprocess.start()で引数を渡す必要がありますか? –

+0

私はこの動詞を実行しようとしましたが、まだ出力がありません。 –

+0

x64を実行しようとしているアプリはありますか? –

関連する問題