为什么我的工作项由于未处理的访问冲突错误而失败?

时间:2019-02-11 20:16:16

标签: node.js autodesk-forge autodesk-designautomation

我正在尝试使用Design Automation API的v2和forge-api-nodejs-client发布一个WorkItem。 WorkItem将json文件作为输入参数。我创建的自定义.NET插件取决于json文件。

由于FailedMissingOutput,工作项失败。我打印了报告并注意到了这一点……

[02/11/2019 19:14:48] Command: DRAWMARKUPS
[02/11/2019 19:14:49] ************************MessageBox****************************
[02/11/2019 19:14:49] AutoCAD Error Aborting
[02/11/2019 19:14:49] FATAL ERROR:  Unhandled Access Violation Reading 0x0008 Exception at 82480c14h
[02/11/2019 19:14:49] >>>Responding: OK.
[02/11/2019 19:14:49] **************************************************************
[02/11/2019 19:14:49] ************************MessageBox****************************
[02/11/2019 19:14:49] AutoCAD Error-abort
[02/11/2019 19:14:49] Error handler re-entered.  Exiting now.
[02/11/2019 19:14:49] >>>Responding: OK.
[02/11/2019 19:14:49] **************************************************************
[02/11/2019 19:14:49] End AutoCAD Core Engine standard output dump.
[02/11/2019 19:14:50] Error: AutoCAD Core Console output contains error(s).
[02/11/2019 19:14:50] End script phase.
[02/11/2019 19:14:50] Start upload phase.
[02/11/2019 19:14:50] Error: Non-optional output [a57863c8-3085-4bc2-90b6-709595f1c566.dwg.dwg] is missing .
[02/11/2019 19:14:50] Error: An unexpected error happened during phase Publishing of job.
[02/11/2019 19:14:50] Job finished with result FailedMissingOutput

这是我的.NET插件中可能会破坏它的行...

string drawingName = Path.GetFileName(acDoc.Name);

...

// Read input parameters from JSON file
JArray jArray = JArray.Parse(File.ReadAllText("markups.json"));

...

acCurDb.SaveAs(drawingName, DwgVersion.AC1027);

此外,我的“活动”定义中没有在CommandLineParameters对象中包含任何Instruction

  const activityObject = {
    id: id,
    instruction: {
      CommandLineParameters: null,
      Script: `${script}`
    },
    appPackages: appPackages,
    requiredEngineVersion: `20.1`,
    parameters: {
      InputParameters: [{
        Name: `HostDwg`,
        LocalFileName: `$(HostDwg)`
      }],
      OutputParameters: [{
        Name: outPutFilename,
        LocalFileName: `${outPutFilename}.dwg`
      }]
    },
    allowedChildProcesses: [],
    version: 1,
    isPublic: true,
    theData: null,
    obj: null
  };

我怀疑我的“活动定义”中缺少正确的CommandLineParameters,但我不知道这些应该是什么。

为什么我的WorkItem失败?是活动还是插件?而且,我该如何解决呢?

更新:我在输出文件名中修复了.dwg.dwg错字。现在,WorkItem成功了,但是我仍然收到Unhandled Access Violation错误。另外,我的脚本似乎未在json文件中读取。该插件可在本地使用,所以我仍然不知道怎么回事。

1 个答案:

答案 0 :(得分:0)

我建议您向.net插件添加更多日志记录,以便可以对问题进行三角剖分。您可以使用简单的Console.WriteLine方法,它们将出现在报告中。您可能想捕获异常并将其转储出去,以便您知道失败的原因。

markup.json来自何处?那是您的AppPackage zip的一部分吗?

我认为CommandLineParameters在这里没有任何作用。对于使用accoreconsole.exe的活动,可以将其保留为空。我们将默认它。