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

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

【问题讨论】:

    标签: c# process exit-code


    【解决方案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

    【讨论】:

      猜你喜欢
      • 2016-05-12
      • 2022-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-04
      • 1970-01-01
      相关资源
      最近更新 更多