J'espère que quelqu'un pourra m'éclairer sur ce qui pourrait causer cette erreur :
Tentative de lecture ou d'écriture d'une mémoire protégée. C'est souvent une indication que d'autres mémoires sont corrompues.
Je ne peux pas vraiment afficher de code car cette erreur semble se produire dans n'importe quelle zone de l'application. L'application fonctionne entre 12 et 48 heures avant de déclencher l'erreur. Parfois, elle s'arrête à un endroit apparemment aléatoire et affiche l'erreur ci-dessus, d'autres fois, l'application entière s'arrête et j'obtiens un écran avec une erreur qui dit quelque chose du genre "There was a fatal error in...". Il peut s'agir d'un bogue dans le CLR ou...", quelque chose à propos de PInvoke ou d'autres informations non pertinentes. Lorsque cela se produit, tous les threads sont terminés et aucune information de débogage n'est disponible.
En bref, voici ce que fait l'application :
Il s'agit d'une application serveur multi-threads entièrement écrite en C#. Les clients se connectent au serveur via un socket. Le serveur exécute un "environnement" virtuel pour les clients où ils peuvent interagir entre eux et avec l'environnement. Il consomme pas mal de mémoire mais je ne le vois pas fuir. Il consomme généralement environ 1,5 Go. Je ne pense pas qu'il y ait de fuite car l'utilisation de la mémoire reste relativement constante tout au long de l'exécution de l'application. Elle exécute constamment du code pour maintenir l'environnement, même si les clients ne font rien. Elle n'utilise aucun logiciel tiers ni aucune autre API. Les seules ressources extérieures que cette application utilise sont les connexions aux sockets et aux bases de données SQL. Elle fonctionne sur un serveur 64 bits. J'ai essayé de déboguer ce problème dans VS2008 et VS2010 en utilisant .net 2.0, 3.5 et 4.0 et sur plusieurs serveurs et le problème finit toujours par se produire.
J'ai essayé de désactiver les optimisations du compilateur et plusieurs correctifs de Microsoft. Rien ne semble faire disparaître ce problème. J'apprécierais que quelqu'un connaisse les causes possibles, ou un moyen d'identifier ce qui cause le problème.
0 votes
Veuillez afficher la pile d'appels complète...
0 votes
Duplicata possible de Dépannage de .NET "Fatal Execution Engine Error" (erreur fatale du moteur d'exécution)
0 votes
La moitié du temps, je ne peux pas obtenir la pile d'appels. S'il déclenche l'erreur d'exécution fatale, il n'y a aucune information de débogage. Les fois où il s'arrête effectivement quelque part dans le code, rien ne semble anormal. J'ai même parcouru tous les fils de discussion actifs et je n'ai rien vu qui puisse causer un conflit. Je suppose que la corruption de la mémoire s'est produite quelque temps avant que l'erreur ne se produise.
0 votes
Vérifiez si de vieux composants COM et ActiveX sont utilisés. Je sais aussi que SQLCE se plante comme ça dans un environnement multithread.
0 votes
Il n'y a pas de composants COM ou ActiveX.
0 votes
Je rencontre également ce problème. J'utilise paradoxe 5.x, .net 3.5 et sage data object(com component), Cela arrive de manière aléatoire, je ne peux pas trouver de modèle. Je pense que c'est juste un code d'évitement dans le composant com.
0 votes
Vous pouvez aussi l'obtenir en accédant à une ressource qui est verrouillée par quelque chose, comme un fichier Excel déjà ouvert. J'ai posté ceci comme une réponse puisque c'était mon problème.
0 votes
Étonnamment, cela ne se produit que pour un seul des projets de ma solution. J'ai une douzaine de projets dans ma solution, mais tous les autres fonctionnent sans aucun problème. Le projet pour lequel je rencontre ce problème est une application console C#. Pour ajouter à l'information, j'avais pris une grande quantité de mise à jour Windows 7 en attente dans la matinée d'hier, mais si cela avait été la cause première, cela aurait dû affecter le modèle de démarrage de tous les projets dans la solution. J'utilise Visual Studio 2010. Le problème ne se produit que pendant le débogage du projet à partir de VS. Son exe de sortie du dossier de débogage fonctionne parfaitement.