C#/.Net 启动进程,退出代码为 -2146234327

Posted

技术标签:

【中文标题】C#/.Net 启动进程,退出代码为 -2146234327【英文标题】:C#/.Net launched process with exit code -2146234327 【发布时间】:2012-10-04 12:39:08 【问题描述】:

我有一个 C# 4 应用程序,它启动另一个应用程序来执行一些 Python 代码。 Python 代码可以毫无问题地执行(在 PythonWin 上检查)。 在我的应用程序中,我看到退出代码是 -2146234327。我一直在谷歌搜索,无法弄清楚这是什么意思。 有什么想法吗? 谢谢

【问题讨论】:

【参考方案1】:

-2146234327 是 HRESULT 代码,通常以十六进制查找。见Interpreting HRESULTS returned from .NET/CLR: 0x8013XXXX:

HOST_E_EXITPROCESS_TIMEOUT0x80131029 进程退出由于 超时升级。

【讨论】:

谢谢。你有没有机会扩展一下它的含义?该进程成功执行给定的 Python 代码,但由于某种原因返回此退出代码。 如您所见,MSDN 没有解释代码,因为它基本上是更深层次的内部结构。我最好的猜测是代码执行了,但托管进程保持了一段时间(出乎意料?),后来在清理过程中强行关闭了它 - 代码指示了该操作。并不是说问题出在 Puthon 代码本身。【参考方案2】:

我写了一个解决方法,因为这是一个警告而不是错误。

我在运行 ArcGIS 分析和索引重建过程的 DOS 批处理文件中包含以下内容

set myRC=%ERRORLEVEL%
echo %myRC%
set Constant=-2146234327
echo %Constant%
if %myRC% EQU %Constant% set ERRORLEVEL=0
echo %ERRORLEVEL%
第 1 行将变量设置为调用命令返回的值,例如调用 D:\Python27\ArcGIS10.2\python.exe D:\Analyze\Analyze.py >> D:\Analyze\Log\output.txt 第 2 行回显返回的值 第 3 行设置一个常量变量 第 4 行呼应了这一点 第 5 行将 CALL 命令返回的值与常量进行比较,如果匹配,则将 ERRORLEVEL 变量设置为零 第 6 行回显返回代码。

在其他地方找到了可能对这个问题有更多了解的信息:

https://github.com/ucd-cws/arcpy_metadata/issues/13

【讨论】:

以上是关于C#/.Net 启动进程,退出代码为 -2146234327的主要内容,如果未能解决你的问题,请参考以下文章

启动进程并等待退出代码而不冻结

CruiseControl.NET(CCNET)“收到进程退出事件”但构建等待?

015 线程退出 启动

错误记录Ubuntu 下 VSCode 编译报错 ( 无法生成和调试,因为活动文件不是 C 或 C++ 源文件。终端进程启动失败(退出代码: -1)。终端将被任务重用,按任意键关闭。 )

从 C# PowerShell cmdlet 返回退出代码

Android Studio 调试器进程以退出代码 127 完成