Получение BadImageFormatException из StackTrace другого исключения

StackOverflow https://stackoverflow.com/questions/4814833

Вопрос

На моем сервере я получаю исключение, которое перехватываю, и вроде бы все в порядке.

Проблема в том, что когда я пишу это Трассировки стека Я получаю Исключение BadImageFormatException.

Я пытался отладить сервер.Остановился на точке останова при перехвате исключения, вижу все его поля, но в StackTrace вижу исключение BadImageFormatException.

Есть идеи, что вызывает эту проблему?

Данные моего сервера -

Он написан на C# с .NET FW 4.
Я также использую FrameWork, написанный на Managed C++.
Я компилирую свой сервер на платформу x86.И запустите сервер на машине x64.

Полное исключение BadImageFormatException –

System.BadImageFormatException:Параметры и подпись метода не совпадают.at System.Reflection.RuntimeParameterInfo.getParameters (IruntimeMeThodinfo MethodNhandle, MemberInfo, Signature SIG, ParameterInfo & returnParameter, Boolean fetchreTurnParameter) на system.RuntimeThodinfo.FetchNreturnerTursErtersErteMERTEMER на System.diagnostics.stacktrace .ToString (TraceFormat TraceFormat) at System.Environment.GetStackTrace (Exception E, Boolean wondfileInfo) на System.exception.getStackTrace (Boolean wondfileinfo) на System.exception.toString (boolean wondfilelineinfo) at system.exception.toString () at log4net. Objectrender.defaultrenderer.renderobject (renderermap, renderermap, Object obj, Textwriter Writer) на log4net.objectrender.renderermap.findandrender (объект obj, текстор писатель)

Это было полезно?

Решение

Вы используете Spring.net? Недавно у меня была такая же проблема при внедрении IerrorHandler в WCF, чтобы войти в систему исключения, и в моем случае проблема была в Spring.net. Я обновил spting.net до версии 1.3.1, и теперь он работает нормально.

От ChangeLog [SPRNET -1284] - Генерация кода IL может привести к System.BadimageFormateXception в Windows 2008

Другие советы

Это происходит, если ваш исполняемый процесс работает как x86 (если установлено значение AnyCPU и работает на 32-битной машине), но где-то в будущем он пытается загрузить сборку, которая явно скомпилирована как x64.или наоборот.x64 (или любой процессор на машине x64) пытается загрузить явно скомпилированную сборку x86.

Некоторые прекращения могут вызвать это исключение, когда они вводят недействительные метаданные.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top