从我的asp.net mvc Web应用程序调用asp.net控制台应用程序

Joh*_*ohn 5 .net c# asp.net asp.net-mvc

我已经使用Visual Studio 2012创建了一个asp.net控制台应用程序,该控制台应用程序是我们ERP系统和自定义数据库之间的同步作业。现在,我需要此同步作业及时运行,因此我在Windows任务计划程序下创建了一个新任务,该任务每小时调用一次控制台应用程序,效果很好。

但我需要有能力由最终用户手动运行控制台应用程序,主要是用户可以登录到我们的Web应用程序(asp.net mvc),然后从那里可以单击“同步”按钮,其中此“同步”按钮将主要调用控制台应用程序...这可能吗?我的意思是我可以让我的Web应用程序调用控制台应用程序,就像Task Schuler调用控制台应用程序一样吗?

第二个问题,如果我设法从asp.net mvc Web应用程序调用控制台应用程序,这是否将迫使控制台应用程序在IIS下运行?还是Web应用程序可以在IIS范围之外调用控制台应用程序?类似于从Task Scheduler调用控制台应用程序?

Fra*_*son 6

问题1:可以。

public ActionResult Index()
{
    Process.Start(@"c:\Windows\System32\cmd.exe");
    return View();
}
Run Code Online (Sandbox Code Playgroud)

问题2:该进程将在IIS帐户下运行,该帐户可能没有您的进程所需的特权。您可以在调用Process.Start()之前模拟其他用户。请参阅以下示例:

更改用户以运行Windows窗体程序

  • public ActionResult Index(){Process.Start(@“ c:\ Windows \ System32 \ cmd.exe”); 返回View(); }我只是试过了,即使您停止IIS,该过程也可以继续运行 (3认同)