启动进程只能在控制台应用程序中工作

本文关键字:应用程序 工作 控制台 进程 启动 | 更新日期: 2023-09-27 17:58:50

我正试图从web应用程序(运行在Visual Studio开发服务器上)启动一个外部exe。当我从控制台应用程序运行下面的代码时,它运行良好,但当我从网页运行它时,应用程序崩溃。我想这一定是权限问题,但我尝试了一些方法,但都没能成功。

      private void RunExe(string pythonOutputFileNameAndLocation)
      {
            var process = new Process { StartInfo = GetProcessStartInfo(pythonOutputFileNameAndLocation) };            
            // This is where the application crashes   
            process.Start();
            // ...do some more things here
       }

       private ProcessStartInfo GetProcessStartInfo(string pythonOutputFileNameAndLocation)
            {
                var startInfo = new ProcessStartInfo
                {
                    CreateNoWindow = true, 
                    UseShellExecute = false,
                    RedirectStandardOutput = true,
                    RedirectStandardInput = true,
                    FileName = _exeFileLocation,
                    WindowStyle = ProcessWindowStyle.Hidden,
                    Arguments = String.Format("--hideUI --runScript {0}", pythonOutputFileNameAndLocation)                
                };
                return startInfo;
            }

我想问的是,为什么这些代码可以在控制台应用程序中工作,而不能在visualstudio web服务器中工作?

我使用的是Windows 7和Visual Studio 2010。

编辑:

根据要求,以下是Windows捕获的问题详细信息:

问题事件名称:BEX应用程序名称:应用程序版本:2.2.2.2909应用程序时间戳:507bf285故障模块名称:MSVCR100.dll故障模块版本:10.0.402193.25故障模块时间戳:4df2be1e异常偏移:0008af3e异常代码:c0000417异常数据:00000000操作系统版本:6.1.760.1.2.1.0.256.48区域设置ID:2057附加信息1:c5a0附加信息2:c5a0d9e876212c0d3929ba8445f002dc附加信息3:5e93附加信息4:5e93e44f8aa24f99d37e055f533d1658

我无法调试外部应用程序,因为我没有来自它的代码。此外,我没有堆栈跟踪,因为我不会得到异常。外部进程正在崩溃。

感谢

启动进程只能在控制台应用程序中工作

Ronnie,您可能会遇到UAC和安全访问问题。请尝试禁用UAC,然后重试。此外,请考虑在真实的web服务器上,此过程将使用ASP.NET或web用户权限启动。出于安全考虑,这些帐户是故意限制的。这意味着您尝试启动的应用程序可能会失败,因为它无法访问所需的文件。因此,不建议从web服务器启动外部exe。但是,您可以查看这个关于使用管理员凭据运行应用程序的stackoverflow问题。如何使用管理员信誉运行c#应用程序?

可能是权限的安全问题,但最好能给我们更多关于异常的详细信息。

你有没有试过在IIS上运行它并检查它是如何工作的?

异常代码c0000417的符号名称为STATUS_INVALID_CRUNTIME_PARAMETER。在谷歌上搜索"python"answers"STATUS_INVALID_CRUNTIME_PARAMETER"会导致围绕目录权限的各种python问题。您可以使用Process Monitor来发现在尝试运行应用程序时是否存在任何权限问题。

相关文章: