2016-09-01 2 views
0

잘못된 상태 코드 'BadRequest'반환,AddTaskAsync BatchErrorException은 작동에는 나는 다음과 같은 샘플을 기반으로 템플릿을 사용하여 푸른 배치 예를 구현 한

https://github.com/Azure/azure-batch-samples/tree/master/CSharp/TextSearch

내 솔루션은 작업 관리자 작업을 만듭니다하는 turn은 각 부서마다 여러 하위 작업을 만듭니다.

Console.WriteLine("Submitting {0} mapper tasks.", extracts.Count()); 

//The collection of tasks to add to the Batch Service. 
List<CloudTask> tasksToAdd = new List<CloudTask>(); 

// Create Batch jobs 
foreach (var extract in extracts) 
{ 
// ToDo: Uncomment this 
// extractService.SetStatus(extract.Id, WarehouseMasterConstants.eExtractStatus.Queuing); 

string taskId = Helpers.GetSummarizeDivisionTaskId(extract.Id); 
Console.WriteLine("Task Id: " + taskId); 

string commandLine = string.Format("{0} {1}", SummarizeDivisionConstants.SummarizeDivisionTaskExecutable, extract.Id.ToString()); 
Console.WriteLine("Command Line: " + commandLine); 
CloudTask unboundMapperTask = new CloudTask(taskId, commandLine); 

//The set of files (exes, dlls and configuration files) required to run the mapper task. 
IReadOnlyList<string> mapperTaskRequiredFiles = SummarizeDivisionConstants.RequiredExecutableFiles; 

List<ResourceFile> mapperTaskResourceFiles = BatchHelpers.GetResourceFiles(containerSas, mapperTaskRequiredFiles); 

unboundMapperTask.ResourceFiles = mapperTaskResourceFiles; 

tasksToAdd.Add(unboundMapperTask); 
} 

//Submit the unbound task collection to the Batch Service. 
//Use the AddTask method which takes a collection of CloudTasks for the best performance. 
await batchClient.JobOperations.AddTaskAsync(this.jobId, tasksToAdd);  

내가 저장 및 일괄 자격 증명으로 확인했다가 정확하고 작동 : 나는 아래의 코드에 batchClient.JobOperations.AddTaskAsync를 호출 할 때 나는 "BadRequest"오류가 발생하고있다.

내가 왜 BadRequest을 얻는 지 결정하는 데 도움이 될만한 의견이 있습니다.

스택 추적 :

처리되지 않은 예외 : System.AggregateException : 하나 이상의 오류가 발생했습니다. ---> Microsoft.Azure.Batch.ParallelOperationsException : Azure 일괄 처리 서비스에 대한 하나 이상의 요청이 실패했습니다. ---> Microsoft.Azure.Batch.Common.BatchException : 작업이 잘못된 상태 코드 'BadRequest'를 반환했습니다. ---> Microsoft.Azure.Batch.Protocol.Models.BatchErrorException : 작업이 잘못된 상태 코드 'BadRequest'를 반환했습니다. \ r \ n Microsoft.Azure.Batch.Protocol.TaskOperations.d__7.MoveNext() \ r \ n --- 예외가 발생한 이전 위치의 스택 추적 끝 - System.Runtime.CompilerServices에서 \ r \ n. TaskAwaiter.ThrowForNonSuccess (작업 작업) \ System \ Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (작업 작업) \ r \ n Microsoft.Azure.Batch.Protocol.BatchRequestBase 2.<ExecuteRequestWithCancellationAsync>d__43.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.CompilerServices.T askAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Microsoft.Azure.Batch.Protocol.BatchRequestBase 2.d__40.MoveNext() \ r \ n --- 내부 예외 스택 추적 끝 --- Microsoft.Azure.Batch.Protocol.BatchRequestBase에서 2.<ExecuteRequestAsync>d__40.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)\r\n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n at Microsoft.Azure.Batch.ProtocolLayer.<ProcessAndExecuteBatchRequest>d__83 1.MoveNext() \ r \ n --- 예외가 있던 이전 위치에서 스택 추적 끝 Throw --- System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (작업 작업) \ r \ n System.Runtime.CompilerSer에서 \ r \ n vices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (작업 작업) \ 012 \ 1635454 (시스템 작업) \ System \ System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd (작업 작업) \ Microsoft Office \ --- 예외가 발생한 이전 위치에서 스택 추적 끝 - System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (작업 작업) \ r \ n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification 작업 태스크) \ r \ n Microsoft.Azure.Batch.AddTasksWorkflowManager.d__19.MoveNext() \ r \ n --- 내부 예외 스택 추적 끝 --- Microsoft.Azure.Batch.AddTasksWorkflowManager. d__19.MoveNext() \ r \ n --- 예외가 발생한 이전 위치의 스택 추적 끝 - System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (작업 작업)의 \ r \ n 시스템의 \ r \ n .Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (작업 작업) \ r \ n Microsoft.Azure.Ba tch.AddTasksWorkflowManager.d__18.MoveNext() \ r \ n --- 예외가 발생한 이전 위치의 스택 추적 끝 - System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Task task)의 \ r \ n \ r \ n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (작업 작업) \ r \ n Microsoft.Azure.Batch.AddTasksWorkflowManager.d__13.MoveNext() \ r \ n --- 이전 위치에서 스택 추적 끝 위치 예외가 발생했습니다. System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (작업 작업) \ r \ n System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (작업 작업) \ r \ n Microsoft.Azure .Batch.JobOperations.d__43.MoveNext() \ r \ n --- 예외가 throw 된 이전 위치의 스택 추적 끝 - System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (Task task)의 \ r \ n \ r \ n at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotifica tio n (작업 작업) \ r \ n

답변

0

문제가 해결되었습니다.내 작업 ID에 "."이 포함 된 실행 파일 이름이 포함되어 있습니다. 그 안에. "." "-"와 함께 작동했습니다.