Получение BadImageFormatException из другого исключения StackTrace - PullRequest
1 голос
/ 27 января 2011

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

Проблема в том, что когда я пишу его StackTrace , я получаю BadImageFormatException .

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

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

Сведения о моем сервере -

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

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

System.BadImageFormatException: параметры и сигнатура метода не совпадают.в System.Reflection.RuntimeParameterInfo.GetParameters (IRuntimeMethodInfo methodHandle, член MemberInfo, сигнатура сигнатуры, ParameterInfo & returnParameter, логическое значение fetchReturnParameter) в System.Reflection.RuntimeMethodInfo.Fetch.foTech.GameThereTarampGameRecTimePlayTimeThereRaraTimePlayTimeRefTimePlayTechThereRaraTimePlayTimeRefTimePlayTechThereParameterMaragPlayTimeThereParaTM).ToString (TraceFormat traceFormat) в System.Environment.GetStackTrace (исключение e, логическое needFileInfo) в System.Exception.GetStackTrace (логическое needFileInfo) в System.Exception.ToString (логическое needFileLineInfo) в System.Exception.ToString.ObjectRenderer.DefaultRenderer.RenderObject (RendererMap rendererMap, Object obj, Writer TextWriter) в log4net.ObjectRenderer.RendererMap.FindAndRender (Object obj, TextWriter Writer)

Ответы [ 3 ]

5 голосов
/ 29 января 2011

Используете ли вы Spring.NET? Недавно у меня была такая же проблема при реализации IErrorHandler в WCF для регистрации исключений, а в моем случае проблема была в Spring.NET. Я обновил Spting.NET до версии 1.3.1, и теперь он работает нормально.

из журнала изменений [SPRNET-1284] - генерация кода IL может привести к исключению System.BadImageFormatException в Windows 2008

1 голос
/ 19 марта 2013

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

1 голос
/ 27 января 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...