我下载了 .NET 教程示例以开始使用 Azure Batch。
我的目标是自动化(每 2 分钟运行一次)Web API 调用,并将获取的数据存储到数据存储容器中。
问题是我在池中的节点(VM)上执行的任务返回失败,确切的错误是“任务退出,并显示代表失败的退出代码”。
所以我继续打印导致失败的错误退出代码。退出代码为-1073741819。但这告诉我什么???我在网上找不到任何东西告诉我这个退出代码代表什么???怎么解决呢??
有时,当我再次运行它时,它会因另一个退出代码-532462766而失败。如何调试 Azure 云中的 VM 上发生的故障?
最佳答案
您可以查看任务的 stderr.txt
和 stdout.txt
文件,以进一步深入了解该问题。查看这些文件的最简单方法是转到 Azure Portal并导航到您的 Batch 帐户。您可以单击Jobs
,这将展开作业边栏选项卡。单击相关任务,然后单击节点上的文件
。您应该可以看到 stderr.txt
和 stdout.txt
进行查看。您还可以通过 .NET SDK 通过 CloudTask.GetNodeFile/GetNodeFileAsync 以编程方式检索这些文件。 .
您还可以通过 RDP 访问计算节点并查看 Windows 事件查看器,以进一步了解程序崩溃的原因。您可以通过 Azure 门户生成 RDP 凭据,方法是导航到执行任务的计算节点(池 -> 选择池 -> 节点 -> 选择节点)并添加远程用户。
就您的退出代码而言,-1073741819 是 C0000005(似乎是访问冲突),-532462766 是 E0434352(似乎是 CLR 异常)。您需要对代码产生这些错误的原因进行一些研究。一项健全性检查是确保将所有必需的 DLL 和程序集与程序一起打包为应用程序包或任务资源文件的一部分。
关于.net - Azure Batch 服务任务退出代码错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45593987/