Pregunta

En mi servidor obtengo una excepción que capto y parece estar bien.

El problema es que cuando escribo su Stacktrace Me estoy poniendo BadimageFormateException.

He intentado depurar el servidor. Me detuve en un punto de interrupción al detectar la excepción, puedo ver todos sus campos, pero en StackTrace veo el badimageFormateException.

¿Alguna idea de qué causa a este problema?

Detalles de mi servidor -

Está escrito en C# con .NET FW 4.
También uso el marco que está escrito en C ++ administrado.
Compilo mi servidor a la plataforma X86. Y ejecute el servidor en la máquina X64.

El badeMageFormateException completo -

System.BadImageFormateException: los parámetros y la firma del método no coinciden. en system.reflection.RunteMeParameterInfo.getParameters (IrUnTimEmethodinfo MethodHandle, miembro miembro, Signature SIG, ParameterInfo & ReturnParameter, boolean fetchreturnparameter) en system.reflection.RunTimEmethodinfo.fetnonParameters () en System.reflection.AtToToTimTimS.AtToTiMETMETMETMETME. .ToString (TraceFormat TraceFormat) en System.environment.getStackTrace (Exception E, Boolean NeedFileInfo) en System.Exception.GetStackTrace (Boolean NeedFileInfo) en System.Exception.ToString (Boolean NeedFilelineInfo) en System.Exception.toString () en Log4net. Objectrenderer.defaultrenderer.renderObject (renderermap renderermap, object obj, textwriter escritor) en log4net.objectenderer.renderermap.findandrender (objeto obj, escritor de textwriter)

¿Fue útil?

Solución

¿Usas spring.net? Recientemente tuve el mismo problema al implementar ierrorHandler en WCF para registrar las excepciones y, en mi caso, el problema fue en Spring.net. He actualizado spting.net a la versión 1.3.1 y ahora funciona bien.

Desde ChangeLog [Sprnet -1284]: la generación de códigos IL puede dar lugar al sistema. BadImageFormateException en Windows 2008

Otros consejos

Esto sucede si su proceso de ejecución se ejecuta como X86 (si está configurado en AnyCPU y se ejecuta en una máquina Win32bit) pero en algún lugar en el camino intenta cargar un ensamblaje que se ha compilado explícitamente como x64 ... o viceversa. x64 (o anycpu en la máquina x64) intenta cargar un ensamblaje compilado X86 explícito.

Algunos ofuscadores pueden causar esta excepción cuando inyectan metadatos no válidos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top