7 votes

Que signifie BadImageFormatException 0x80131124 (Index non trouvé) ?

Mon programme se bloque de temps en temps avec le message d'erreur suivant :

System.Reflection.TargetInvocationException : Une exception a été levée par la cible d'une invocation. ---> System.BadImageFormatException : Index non trouvé. (Exception provenant de HRESULT : 0x80131124)

Quelques détails qui peuvent être pertinents :

  • C# 4 / .NET 4
  • Windows 7 64 bit OS. EXE est destiné à tout type de processeur (donc en mode 64 bits).
  • Ce message est lancé pendant la construction d'un de mes objets personnalisés. Je crée cet objet dans un AppDomain enfant afin de pouvoir décharger les DLLs qu'il chargera en répondant à la requête entrante.
  • Je vois de http://blogs.msdn.com/b/yizhang/ que HRESULT 0x80131124 = CLDB_E_INDEX_NOTFOUND.
  • Je n'ai vu ce phénomène que récemment (je travaille sur cette application depuis 3 ans), et même maintenant, il ne se produit que lorsque j'essaie de profiler l'outil à l'aide du Red Gate Performance Analyzer ou du Red Gate Memory Analyzer.

Mes questions sont les suivantes

  • Qu'est-ce que cela signifie ?
  • Qu'est-ce que l'"index non trouvé" ?
  • Comment puis-je résoudre ce problème ?

Merci beaucoup.

UPDATE

Au lieu de cibler l'EXE pour ANY, je l'ai forcé à passer en x64. Le problème se pose toujours.

2voto

Charl Points 77

Jetez un coup d'œil à la configuration de votre solution pour vous assurer que tous vos projets sont construits sur la même plate-forme.

La raison de votre erreur est que vous avez un fichier x86 qui essaie de charger une dll 64bit ou vice versa.

J'espère que cela vous aidera.

0voto

Peter PAD Points 2042

Vous pouvez modifier votre objectif de la plate-forme construire pour X86

0voto

Dinariys Points 1

Il y avait une erreur similaire due à un .NET Framework cassé. Restaurer via l'utilitaire Outil de réparation de .NET Framework a résolu le problème.

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