我下载了.NET Tutorial示例以开始使用Azure Batch。
我的目标是自动化(每2分钟运行一次)web api调用并将我返回的数据存储到数据存储容器中。
问题是我在我的池中的节点(VM)上执行的Task正在返回失败,Exact错误是“退出的任务,退出代码表示失败”。
所以我继续打印导致失败的错误退出代码。退出代码是-1073741819。但是这告诉我什么?我在网上找不到任何告诉我退出代码代表什么的东西???如何解决?
有时当我再次运行它时,它会在另一个退出代码-532462766上失败。如何在Azure中调试VM上发生的故障?
答案 0 :(得分:2)
您可以查看任务的stderr.txt
和stdout.txt
文件,以便更深入地了解该问题。查看这些文件的最简单方法是转到Azure Portal并导航到您的批处理帐户。您可以单击Jobs
,这将展开作业刀片。单击相关任务,然后单击Files on node
。您应该看到stderr.txt
和stdout.txt
以供查看。您还可以通过.NET SDK通过CloudTask.GetNodeFile/GetNodeFileAsync以编程方式检索这些文件。
您还可以RDP进入计算节点并查看Windows事件查看器,以进一步了解程序崩溃的原因。您可以通过Azure门户生成RDP凭据,方法是导航到执行任务的计算节点(池 - >选择池 - >节点 - >>选择节点)并添加远程用户。
就退出代码而言,-1073741819是C0000005(似乎是访问冲突),-532462766是E0434352(似乎是CLR例外)。您将需要对代码产生这些错误的原因进行一些研究。一个完整性检查是确保您将所有必需的DLL和程序集与程序一起打包为应用程序包或任务资源文件。