99 votes

Comment puis-je réparer une application Windows .NET qui plante au démarrage avec le code d'exception : 0xE0434352?

J'ai construit une application .NET Windows Forms dans Visual Studio 2010. J'ai également construit un package d'installation correspondant via Visual Studio 2010. Il s'agit d'une application 32 bits (x86). (Nous utilisons des contrôles Windows Forms tiers qui sont uniquement en 32 bits).

Je suis capable d'exécuter le package d'installation et de le déployer avec succès sur d'autres environnements Windows 7 64 bits et des boîtes Windows XP 32 bits. L'application installée fonctionne correctement sur ces environnements.

Cependant, lorsque j'essaie d'exécuter Windows Server 2008 R2 - 64 bits, l'application se bloque au démarrage. Elle s'est installée avec succès via l'installateur sans aucune erreur.

Il semble qu'elle se bloque lors du chargement de l'application. J'ai mis une boîte de message en tant que première ligne de l'application pour voir si elle passait le chargement. La boîte de message n'apparaît pas, donc je suppose que cela se produit pendant le chargement/l'initialisation de l'application.

Jusqu'à présent, je n'ai pas trouvé beaucoup d'indications. À partir des Détails, je vois ce qui suit :

Code d'Exception : E0434352

J'ai fouillé un peu/googlé pour voir s'il y avait quelque chose d'évident, mais je n'ai rien vu. J'ai vu quelques références à un possible débordement de pile dans le CLR.

L'application Windows Forms est construite avec les références suivantes :

  • DevExpress
  • Contrôles Winforms Infragistics
  • ORACLE DataAccess DLL
  • RabbitMQ

Quel est le problème ? Comment puis-je aborder la résolution de ce problème ? Comment puis-je déboguer pour obtenir des informations plus utiles ?

112voto

Tergiver Points 8636

Si vous rencontrez cette erreur dans l'Observateur d'événements, vous devriez voir un autre événement d'erreur (au moins un) provenant de la source ".NET Runtime". Regardez ce message d'erreur car il contiendra les informations sur Exception.

entrer la description de l'image ici

81voto

Lars Truijens Points 24005

0xE0434352 est le code d'exception pour toutes les exceptions .NET donc cela ne vous dira pas grand-chose. Comment avez-vous obtenu ce code d'exception? Le journal des événements?

La meilleure option est d'utiliser un débogueur pour obtenir plus d'informations. Si le débogueur Visual Studio ne vous aide pas, vous devrez peut-être consulter WinDbg avec SOS. Consultez ici et ici pour une introduction. Laissez-le planter sur l'exception et voyez si vous pouvez obtenir plus d'informations sur le pourquoi.

Si vous soupçonnez un problème lors du chargement des assemblies, vous voudrez peut-être consulter le journal de fusion.

6voto

John Points 133

Je ne suis pas sûr si cela aidera quelqu'un ou non, mais comme c'était mon problème, je pense que ça vaut la peine de le mentionner :

J'avais cette erreur, et il s'est avéré que c'était un problème avec la plateforme pour laquelle l'EXE a été construit. Nous l'avions construit pour x86, et il fallait être x64, à cause d'une référence Oracle dans le projet. Lorsque nous avons fait ce changement, le problème a disparu. Donc, vérifiez s'il y a des conflits similaires.

4voto

user141158 Points 21

Une explication concise pour 0xe0434352 se trouve ici, ainsi que des instructions pour le débogage via windbg et cdb.

4voto

Mike Kelly Points 41

Il semble que cette erreur 0xe0434352 s'applique à plusieurs erreurs différentes.

Au cas où cela pourrait aider quelqu'un, j'ai rencontré cette erreur lorsque j'essayais d'installer mon application sur une nouvelle installation de Windows 10. Elle fonctionnait sur d'autres machines, et il semblait que l'application allait démarrer brièvement avant de s'arrêter. Après de nombreux essais et erreurs, le problème s'est avéré être que l'application nécessitait DirectX9. Bien qu'une version ultérieure de DirectX était présente, il fallait avoir la version 9. J'espère que cela épargnera à quelqu'un de la frustration.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X