我想在用户请求到来时在 Web API 上执行 exe 文件。它工作完美,但是当我托管 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);
}
}
最佳答案
你如何启动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
关于c# - 在iis服务器上从web api运行exe文件不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45139196/