1

在我的服务器中,我遇到了一个异常,我发现它似乎没问题。

问题是,当我编写它的StackTrace时,我得到了BadImageFormatException

我试图调试服务器。捕获异常时停在断点上,我可以看到它的所有字段,但在 StackTrace 中我看到了 BadImageFormatException。

任何想法是什么导致了这个问题?

我的服务器详细信息 -

它是用 .NET FW 4 用 C# 编写的。
我还使用用托管 C++ 编写的 FrameWork。
我将我的服务器编译到 x86 平台。并在 x64 机器上运行服务器。

完整的 BadImageFormatException -

System.BadImageFormatException:方法的参数和签名不匹配。在 System.Reflection.RuntimeMethodInfo.GetParameters(IRuntimeMethodInfo methodHandle, MemberInfo member, Signature sig, ParameterInfo& returnParameter, Boolean fetchReturnParameter) 在 System.Reflection.RuntimeMethodInfo.FetchNonReturnParameters() 在 System.Reflection.RuntimeMethodInfo.GetParameters() 在 System.Diagnostics.StackTrace .ToString(TraceFormat traceFormat) 在 System.Environment.GetStackTrace(Exception e, Boolean needFileInfo) 在 System.Exception.GetStackTrace(Boolean needFileInfo) 在 System.Exception.ToString(Boolean needFileLineInfo) 在 System.Exception.ToString() 在 log4net。 log4net.ObjectRenderer 上的 ObjectRenderer.DefaultRenderer.RenderObject(RendererMap rendererMap, Object obj, TextWriter writer)。

4

3 回答 3

5

你使用 Spring.NET 吗?最近我在 WCF 中实现 IErrorHandler 以记录异常时遇到了同样的问题,在我的情况下,问题出在 Spring.NET 中。我已将 Spting.NET 更新到 1.3.1 版,现在可以正常工作了。

来自变更日志 [SPRNET-1284] - IL 代码生成可能导致 Windows 2008 中的 System.BadImageFormatException

于 2011-01-29T13:56:04.467 回答
1

如果您的执行进程以 x86 运行(如果设置为 anycpu 并在 win32 位机器上运行),但在某处它试图加载已明确编译为 x64 的程序集,则会发生这种情况。反之亦然。x64(或 x64 机器上的 anycpu)尝试加载显式 x86 编译程序集。

于 2011-01-27T11:28:46.207 回答
1

某些混淆器在注入无效元数据时可能会导致此异常。

于 2013-03-19T13:13:35.273 回答