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 ?

3voto

J'ai passé toute une journée à lutter avec ça, demandant à mes utilisateurs d'exécuter des versions de débogage du logiciel. Parce que cela semblait ne pas exécuter la première ligne. Juste un crash sans aucune information.

Ensuite, j'ai réalisé que l'erreur se trouvait à l'intérieur de InitializeComponent du formulaire.

La manière d'obtenir une exception était de supprimer cette ligne (ou de la commenter) :

System.Diagnostics.DebuggerStepThrough()

Une fois que vous vous débarrassez de la ligne, vous obtiendrez une exception normale.

2voto

Joel Points 11

J'obtenais cela lorsque l'application était déployée. Dans mon cas, j'ai choisi "Ceci est une application à confiance totale" dans l'onglet de sécurité du projet, et cela a résolu le problème.

2voto

Problème :

Le code de l'application .Net s'arrête avant même de commencer son exécution [application console ou application Windows]

Erreur reçue : Arrêté avec le code d'erreur "E0434352"

Exception : Exception inconnue

Scénario 1 :

Lorsqu'une application est déjà exécutée et qu'elle a utilisé certaines des ressources dépendantes, ces ressources étant toujours utilisées par l'application exécutée, lorsque une autre application ou le même exe est déclenché à partir d'une autre source, l'une des applications lance une erreur.

Scénario 2 :

Lorsqu'une application est déclenchée par un planificateur ou des tâches automatiques, elle peut être en cours d'exécution en arrière-plan. Pendant ce temps, si vous essayez de déclencher à nouveau la même application, une erreur peut survenir.

Solution :

Créez une application qui libère toutes ses ressources dès qu'elle est terminée. Arrêtez tous les processus en arrière-plan une fois l'application fermée. Vérifiez et évitez d'exécuter l'application à partir de sources multiples comme les Processus en lots, le Planificateur de tâches et les outils externes en même temps. Vérifiez les dépendances de l'application et des ressources et nettoyez le code si nécessaire.

1voto

user857629 Points 1

Pour résoudre le problème pour moi (comme un certain nombre d'applications ont commencé à jeter cette exception soudainement, par exemple, CorelDraw X6), j'ai désinstallé le .NET 4.5 runtime et installé le .NET 4 runtime. Les deux versions ne peuvent pas être installées côte à côte, mais elles utilisent les mêmes numéros de version dans le GAC. Cela pose des problèmes car certaines fonctions ont été désapprouvées dans 4.5.

L'enfer des DLL est de retour...

1voto

dellyjm Points 58

Nous avons rencontré cette erreur lorsque la chaîne de connexion à notre base de données était incorrecte. La clé pour résoudre ce problème a été d'exécuter le dotnet blah.dll qui nous a fourni une trace de la pile nous montrant que l'instance du serveur SQL spécifiée n'a pas pu être trouvée. J'espère que cela aidera quelqu'un.

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