Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# FileUploadMiscError azure批处理输出文件_C#_Azure_Azure Batch - Fatal编程技术网

C# FileUploadMiscError azure批处理输出文件

C# FileUploadMiscError azure批处理输出文件,c#,azure,azure-batch,C#,Azure,Azure Batch,在Azure批处理云任务使用c#完成后,我尝试将输出文件上载到Azure blob。我的代码工作正常,但它给出了文件上载错误-任务失败“上载一个输出文件时遇到杂项错误”针对不同任务随机出现错误 集装箱ASURL代码- SharedAccessBlobPolicy sasConstraints = new SharedAccessBlobPolicy { SharedAccessExpiryTime = DateTime.UtcNow.Ad

在Azure批处理云任务使用c#完成后,我尝试将输出文件上载到Azure blob。我的代码工作正常,但它给出了文件上载错误-任务失败“上载一个输出文件时遇到杂项错误”针对不同任务随机出现错误

集装箱ASURL代码-

 SharedAccessBlobPolicy sasConstraints = new SharedAccessBlobPolicy
            {
                SharedAccessExpiryTime = DateTime.UtcNow.AddHours(sasUrlExpirationTime),
                Permissions = SharedAccessBlobPermissions.Write
            };
            string sasContainerToken = string.Empty;
            CloudBlobContainer container = BlobClient.GetContainerReference(containerName);

            if (await container.CreateIfNotExistsAsync())
            {
                sasContainerToken = container.GetSharedAccessSignature(sasConstraints);
            }
            sasContainerToken = container.GetSharedAccessSignature(sasConstraints);
       string outputContainerSasUrl= string.Format("{0}{1}", container.Uri, sasContainerToken);
 CloudTask task = new CloudTask(taskId, taskCommandLine)
                            {
                                OutputFiles = new List<OutputFile>
                                {
                                    new OutputFile(
                                        filePattern: @"../std*.txt",
                                        destination: new OutputFileDestination(
                                                        new OutputFileBlobContainerDestination(
                                                                containerUrl: outputContainerSasUrl,
                                                        path: jobdetails.JobId+"/output")),
                                        uploadOptions: new OutputFileUploadOptions(
                                                        uploadCondition: OutputFileUploadCondition.TaskCompletion)
                                    ),
                                    new OutputFile(
                                        filePattern: @"%AZ_BATCH_JOB_PREP_WORKING_DIR%\*.dat",
                                        destination: new OutputFileDestination(new OutputFileBlobContainerDestination(
                                                            containerUrl: outputContainerSasUrl,
                                                            path:jobdetails.JobId+"/output")),
                                        uploadOptions: new OutputFileUploadOptions(
                                                            uploadCondition: OutputFileUploadCondition.TaskCompletion))
                                }
                            };
                            task.UserIdentity = new UserIdentity(new AutoUserSpecification(AutoUserScope.Pool, ElevationLevel.Admin));
                            task.ResourceFiles = inputFiles;
                            TaskConstraints taskConstraints = new TaskConstraints();
                            taskConstraints.MaxTaskRetryCount = 2;
                            task.Constraints = taskConstraints;
任务提交-

 SharedAccessBlobPolicy sasConstraints = new SharedAccessBlobPolicy
            {
                SharedAccessExpiryTime = DateTime.UtcNow.AddHours(sasUrlExpirationTime),
                Permissions = SharedAccessBlobPermissions.Write
            };
            string sasContainerToken = string.Empty;
            CloudBlobContainer container = BlobClient.GetContainerReference(containerName);

            if (await container.CreateIfNotExistsAsync())
            {
                sasContainerToken = container.GetSharedAccessSignature(sasConstraints);
            }
            sasContainerToken = container.GetSharedAccessSignature(sasConstraints);
       string outputContainerSasUrl= string.Format("{0}{1}", container.Uri, sasContainerToken);
 CloudTask task = new CloudTask(taskId, taskCommandLine)
                            {
                                OutputFiles = new List<OutputFile>
                                {
                                    new OutputFile(
                                        filePattern: @"../std*.txt",
                                        destination: new OutputFileDestination(
                                                        new OutputFileBlobContainerDestination(
                                                                containerUrl: outputContainerSasUrl,
                                                        path: jobdetails.JobId+"/output")),
                                        uploadOptions: new OutputFileUploadOptions(
                                                        uploadCondition: OutputFileUploadCondition.TaskCompletion)
                                    ),
                                    new OutputFile(
                                        filePattern: @"%AZ_BATCH_JOB_PREP_WORKING_DIR%\*.dat",
                                        destination: new OutputFileDestination(new OutputFileBlobContainerDestination(
                                                            containerUrl: outputContainerSasUrl,
                                                            path:jobdetails.JobId+"/output")),
                                        uploadOptions: new OutputFileUploadOptions(
                                                            uploadCondition: OutputFileUploadCondition.TaskCompletion))
                                }
                            };
                            task.UserIdentity = new UserIdentity(new AutoUserSpecification(AutoUserScope.Pool, ElevationLevel.Admin));
                            task.ResourceFiles = inputFiles;
                            TaskConstraints taskConstraints = new TaskConstraints();
                            taskConstraints.MaxTaskRetryCount = 2;
                            task.Constraints = taskConstraints;
CloudTask task=newcloudtask(taskId,taskCommandLine)
{
OutputFiles=新列表
{
新输出文件(
文件模式:@“./std*.txt”,
目的地:新的OutputFileDestination(
新的OutputFileBlobContainerDestination(
containerUrl:OutputContainerAsUrl,
路径:jobdetails.JobId+“/output”),
uploadOptions:新的OutputFileUploadOptions(
uploadCondition:OutputFileUploadCondition.TaskCompletion)
),
新输出文件(
文件模式:@“%AZ\u批处理\u作业\u准备\u工作\u目录%\*.dat”,
目的地:新OutputFileDestination(新OutputFileBlobContainerDestination(
containerUrl:OutputContainerAsUrl,
路径:jobdetails.JobId+“/output”),
uploadOptions:新的OutputFileUploadOptions(
uploadCondition:OutputFileUploadCondition.TaskCompletion)
}
};
task.UserIdentity=newuseridentity(newautouserspecification(AutoUserScope.Pool,ElevationLevel.Admin));
task.ResourceFiles=输入文件;
TaskConstraints TaskConstraints=新的TaskConstraints();
taskConstraints.MaxTaskRetryCount=2;
task.Constraints=taskConstraints;

这段代码运行正常,但随机出现故障

您可以检查您的fileuploadout.txt和fileuploaderr.txt,它们应该与stdout.txt和stderr.txt任务一起编写吗?理想情况下,如果您可以在此处共享它们(请确保编辑任何详细信息,例如登录到其中的SAS)。

在FileUploader文件中,这只是内部服务器错误。但在fileuploadout文件中存在错误,如重试策略不允许重试…..HTTP状态代码=400,异常=指定的阻止列表无效。错误代码:InvalidBlockList。我已验证是否正在创建outfile。文件上载是否也包含该请求的请求ID?我已找出了此问题的根本原因。我试图将任务输出保存在作业准备目录AZ_BATCH_job_PREP_WORKING_DIR中。现在我使用任务输出目录AZ_BATCH_task_WORKING_DIR来解决这个问题