Process.Start() 一直将我的.exe作为后台进程 MVC ASP.Net 运行



首先,我检查了网络以尝试找到答案,但是我只遇到想要在后台运行进程的人,而我在这里的问题恰恰相反。

我在控制器上输入了以下代码,单击按钮时将启动该过程:

string fileLocation = @"C:somefolderanotherFolder...application.exe";
        ProcessStartInfo oStartInfo = new ProcessStartInfo();
        oStartInfo.FileName = fileLocation;
        oStartInfo.UseShellExecute = false;
        oStartInfo.CreateNoWindow = true;
        oStartInfo.WindowStyle = ProcessWindowStyle.Normal;
        oStartInfo.CreateNoWindow = false;
        var process = new Process { StartInfo = oStartInfo, EnableRaisingEvents = true };
        process.Start();

现在我已经运行了代码,它正在执行 exe,或者当我打开任务管理器时会出现。但是我似乎无法让它在前台执行,以便用户可以做他们需要做的事情。

*额外信息

  • 每当我尝试在运行后重建时,都会出现问题,因为 exe 与项目的 Web 部分处于同一解决方案中,但问题是我必须转到任务管理器并终止进程,否则它无法访问.exe - 这是我需要在前台运行它的另一个主要原因

  • Visual Studio 2013 Express for Web

  • 实体框架
  • MVC Asp.Net Web 项目

任何帮助都会很棒!

请看这里: Process.Start方法:

ASP.NET 网页和服务器控件代码在 Web 服务器上的 ASP.NET 工作进程的上下文中执行。如果在 ASP.NET 网页或服务器控件中使用 Start 方法,则新进程将在具有受限权限的 Web 服务器上执行。该过程不会在与客户端浏览器相同的上下文中启动,并且无权访问用户桌面。

因此,该进程将运行服务器端,而不是客户端,并且它还将在 ASP.Net 工作进程 (w3wp.exe) 的用户配置文件中运行,这意味着除非您碰巧在同一配置文件中以交互方式登录,否则您将看不到进程窗口。

最新更新