我正在尝试在Azure Batch中运行控制台应用程序。我创建了客户端应用程序,负责创建和运行Job&到目前为止Azure批处理中的任务。我的ClientApplication成功创建了作业,作业中的任务,但是当Azure上的应用程序代码在Azure池中执行时,任务失败并退出,退出代码为-532462766。我找不到此退出代码的任何信息。请帮我解决这个问题。
这是我创建任务的代码及其配置
private static async Task<List<CloudTask>> AddTasksAsync(BatchClient batchClient, string jobId)
{
Console.WriteLine("Adding {0} tasks to job [{1}]...", 1, jobId);
List<CloudTask> tasks = new List<CloudTask>();
string taskId = "topNtask";
string taskCommandLine = String.Format("cmd /c %AZ_BATCH_NODE_SHARED_DIR%\\SelfHostedWebAPI.exe {0} {1} {2}", 11109, "MSS_F_MST_______", "Normal");
//string taskCommandLine = String.Format("cmd /c %AZ_BATCH_NODE_SHARED_DIR%\\SelfHostedWebAPI.exe");
CloudTask task = new CloudTask(taskId, taskCommandLine);
tasks.Add(task);
await batchClient.JobOperations.AddTaskAsync(jobId, tasks);
return tasks;
}
来自Azure门户的任务失败报告
答案 0 :(得分:0)
-532462766
的相应十六进制值为0xE0434352
;有关此错误代码/异常的更多信息,请参阅此SO post。常见的罪魁祸首是缺少程序集(参见Assembly Binding Log Viewer)。此外,Windows事件查看器可能在必须使用WinDbg和SOS之前为您提供更多信息。
答案 1 :(得分:0)
最后,我得到了这个问题的解决方案,并在这里节省宝贵的时间是解决方案。 我们需要将Azure池中运行的代码的每个.dll文件和依赖项上传到链接的AzureStorage帐户。此外,在创建池并初始化它时,为每个.dll文件添加一个StartTask,其中包含SAS(共享访问签名,对于它指向的目标.dll)或任何其他类型,应作为参数给予它。