【发布时间】:2013-01-26 14:27:02
【问题描述】:
我正在尝试从 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 捕获的问题详细信息:
问题事件名称:BEX 应用名称: 应用程序版本:2.2.2.2909 申请时间戳:507bf285 故障模块名称:MSVCR100.dll 故障模块版本:10.0.40219.325 故障模块时间戳:4df2be1e 异常偏移量:0008af3e 异常代码:c0000417 异常数据:00000000 操作系统版本:6.1.7601.2.1.0.256.48 区域设置 ID:2057 附加信息 1:c5a0 附加信息 2:c5a0d9e876212c0d3929ba8445f002dc 附加信息 3:5e93 附加信息 4:5e93e44f8aa24f99d37e055f533d1658我无法调试外部应用程序,因为我没有其中的代码。我也没有堆栈跟踪,因为我没有遇到异常。外部进程正在崩溃。
谢谢
【问题讨论】:
-
崩溃的堆栈和异常是什么?你能附加一个调试器并添加更多细节吗?
-
我怀疑他可能遇到了安全问题。堆栈跟踪会很有帮助。
-
使用无效参数调用 C 运行时函数时会引发异常代码 0xc0000417。这几乎总是发出调用的代码中的错误。由松懈的错误检查引起的情况并不罕见。显然,如果没有源代码,您将无法调试它,您需要应用程序的作者或供应商的帮助。
标签: c# process permissions