Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 如何从操作调用控制台程序_Asp.net Mvc_Asp.net Mvc 4_Console Application - Fatal编程技术网

Asp.net mvc 如何从操作调用控制台程序

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 速度是我们主要关心的问题 非常感谢你的帮助 编辑 根据

我正在构建一个MVC应用程序,其中包括一个异步图像上传,因此每个图像一旦上传,就会调用操作。图像上传可能会占用大量cpu资源,并且需要时间,因此我们试图避免在实际操作中进行处理

我读过关于使用异步操作的内容,但我们在其他时间也在处理图像,所以我们选择通过控制台应用程序处理图像处理

从MVC操作异步调用控制台应用程序的正确方法是什么?基本上,我们只想向控制台应用程序传递一些参数,并告诉它启动,而无需等待控制台的任何响应

我们的程序文件是exe

速度是我们主要关心的问题

非常感谢你的帮助

编辑

根据Brian的建议,我们补充了以下内容:

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工作线程)线程上执行该进程,或者使用任务并行库。