2017-08-09 2 views
0

J'ai téléchargé l'exemple .NET Tutorial pour commencer à utiliser Azure Batch.Erreur de code de sortie de tâche Azure Batch Service

Mon objectif est d'automatiser (exécuter toutes les 2 minutes) un appel API Web et de stocker les données que je récupère dans un conteneur de stockage de données.

Le problème est que la tâche que j'exécute sur mon nœud (VM) dans mon pool renvoie un échec, l'erreur exacte est "la tâche terminée avec un code de sortie représentant un échec". Je suis donc allé de l'avant et imprimé le code de sortie d'erreur qui cause la panne. Le code de sortie est -1073741819. Mais qu'est-ce que ça me dit ???? Je n'ai rien trouvé en ligne qui me dit ce que représente ce code de sortie ??? Comment le réparer??

Parfois, lorsque je l'exécute à nouveau, il échoue sur un autre code de sortie -532462766. Comment puis-je déboguer les échecs sur ma machine virtuelle dans le nuage azur?

Répondre

1

Vous pouvez consulter les fichiers stderr.txt et stdout.txt pour les tâches afin de mieux comprendre le problème. La façon la plus simple d'afficher ces fichiers est d'accéder au Azure Portal et de naviguer vers votre compte Batch. Vous pouvez cliquer sur Jobs pour étendre la lame des tâches. Cliquez sur la tâche correspondante puis sur Files on node. Vous devriez voir à la fois stderr.txt et stdout.txt pour l'affichage. Vous pouvez également récupérer ces fichiers par programmation via le SDK .NET via CloudTask.GetNodeFile/GetNodeFileAsync.

Vous pouvez également utiliser RDP dans votre noeud de traitement et consulter l'Observateur d'événements Windows pour mieux comprendre pourquoi votre programme plante. Vous pouvez générer des informations d'identification RDP via le portail Azure en accédant au noeud de calcul qui a exécuté votre tâche (Pools -> Sélectionner un pool -> Noeuds -> Sélectionner un noeud) et en ajoutant un utilisateur distant.

En ce qui concerne votre code de sortie, -1073741819 est C0000005 (semble être une violation d'accès) et -532462766 est E0434352 (semble être une exception CLR). Vous voudrez faire des recherches pour savoir pourquoi votre code produit ces erreurs. Une vérification d'intégrité consiste à s'assurer que vous empaquetez tous les DLL et assemblys requis avec votre programme dans le cadre d'un package d'application ou avec des fichiers de ressources de tâche.