我正在尝试从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;
}
我要问的是为什么这段代码可以在控制台应用程序中运行,但不能从visual studio Web服务器运行?
我正在使用Windows 7和Visual Studio 2010。
编辑:
这里要求的是Windows捕获的问题详细信息:
Problem Event Name: BEX Application Name: Application Version: 2.2.2.2909 Application Timestamp: 507bf285 Fault Module Name: MSVCR100.dll Fault Module Version: 10.0.40219.325 Fault Module Timestamp: 4df2be1e Exception Offset: 0008af3e Exception Code: c0000417 Exception Data: 00000000 OS Version: 6.1.7601.2.1.0.256.48 Locale ID: 2057 Additional Information 1: c5a0 Additional Information 2: c5a0d9e876212c0d3929ba8445f002dc Additional Information 3: 5e93 Additional Information 4: 5e93e44f8aa24f99d37e055f533d1658
我无法调试外部应用程序,因为我没有代码。我也没有堆栈跟踪,因为我没有得到异常。外部流程正在崩溃。
由于
答案 0 :(得分:0)
答案 1 :(得分:0)
权限可能存在安全问题,但如果您能向我们提供有关该例外的更多详细信息,那将是最好的。
你是否尝试在IIS上运行它并检查它在那里的工作原理?
答案 2 :(得分:0)
异常代码c0000417
的符号名称为STATUS_INVALID_CRUNTIME_PARAMETER
。谷歌搜索“python”和“STATUS_INVALID_CRUNTIME_PARAMETER”导致围绕目录权限的各种python问题。您可以在尝试运行应用程序时使用Process Monitor来发现是否存在任何权限问题。