Asp.net mvc 如何从操作调用控制台程序
我正在构建一个MVC应用程序,其中包括一个异步图像上传,因此每个图像一旦上传,就会调用操作。图像上传可能会占用大量cpu资源,并且需要时间,因此我们试图避免在实际操作中进行处理 我读过关于使用异步操作的内容,但我们在其他时间也在处理图像,所以我们选择通过控制台应用程序处理图像处理 从MVC操作异步调用控制台应用程序的正确方法是什么?基本上,我们只想向控制台应用程序传递一些参数,并告诉它启动,而无需等待控制台的任何响应 我们的程序文件是exe 速度是我们主要关心的问题 非常感谢你的帮助 编辑 根据Brian的建议,我们补充了以下内容:Asp.net mvc 如何从操作调用控制台程序,asp.net-mvc,asp.net-mvc-4,console-application,Asp.net Mvc,Asp.net Mvc 4,Console Application,我正在构建一个MVC应用程序,其中包括一个异步图像上传,因此每个图像一旦上传,就会调用操作。图像上传可能会占用大量cpu资源,并且需要时间,因此我们试图避免在实际操作中进行处理 我读过关于使用异步操作的内容,但我们在其他时间也在处理图像,所以我们选择通过控制台应用程序处理图像处理 从MVC操作异步调用控制台应用程序的正确方法是什么?基本上,我们只想向控制台应用程序传递一些参数,并告诉它启动,而无需等待控制台的任何响应 我们的程序文件是exe 速度是我们主要关心的问题 非常感谢你的帮助 编辑 根据
Process pcx = new System.Diagnostics.Process();
ProcessStartInfo pcix = new System.Diagnostics.ProcessStartInfo();
pcix.FileName = "C:\\utils_bin\\fileWebManager\\ppWebFileManager.exe";
pcix.Arguments = WrkGalId.ToString() + " " + websiteId.ToString() + "" + " " + "19" + " \"" + dFileName + "\" ";
pcix.UseShellExecute = false;
pcix.WindowStyle = ProcessWindowStyle.Hidden;
pcx.StartInfo = pcix;
pcx.Start();
您将使用来执行外部应用程序,例如:
Process.Start(@"C:\\path\to\my\application.exe");
我可能不会选择从web应用程序执行控制台应用程序。我会选择一个windows服务来监视你上传文件夹中的更改。谢谢Brian!我只是在看FileSystemWatcher类来实现这一点,但我们可能会测试MVC4中提供的异步控制器选项。感谢Brian,我添加了这个选项,它正在工作,但我们发现调用应用程序时似乎出现了某种延迟。调用该应用程序时,每次上传文件所需的时间延长约7-13秒。这正常吗?我在上面添加了我们的代码作为编辑。您需要在不同的(非IIS工作线程)线程上执行该进程,或者使用任务并行库。