Vous ne pouvez pas renvoyer l'exception de votre exécutable à l'application HPC du client lorsque vous utilisez le planificateur de traitement par lots. S'il est suffisamment bon pour savoir que l'une des tâches ou tâches en attente a échoué, vous pouvez conserver un objet SchedulerJob et ajouter un rappel à l'événement OnJobState ou OnTaskState. Chaque fois que votre travail (ou une tâche dans ce travail) change d'état, vous obtiendrez les informations jobid/taskid et state change dans votre callback; alors vous pouvez vérifier si l'état a été changé en "Échec" et agir sur cette information.
Pour marquer une tâche ou un travail comme "Échec", faites sortir votre exécutable avec un code de sortie différent de zéro. Si vous avez besoin de détails sur l'exception réelle, le mieux que vous puissiez faire est de l'imprimer sur stdout.
Si vous avez vraiment besoin de tous les détails de l'exception, une alternative pourrait être d'utiliser le framework SOA pour vos calculs. Avantages seraient:
vos demandes de calcul ressemblent méthode WCF appelle
vous rentrerez exceptions détaillées lorsque votre code va lancer
vous pouvez utiliser le débogueur SOA extension Visual Studio pour déboguer votre code
Inconvénients seraient:
- plus complexes à écrire et déployer votre application à partir de votre base de code existant.
Voici quelques ressources pour vous aider à démarrer (une recherche de "Windows HPC SOA" vous devriez obtenir beaucoup plus):
MSDN SOA documentation