【发布时间】:2011-01-27 09:51:43
【问题描述】:
在我的服务器中,我遇到了一个异常,我发现它似乎没问题。
问题是,当我编写它的 StackTrace 时,我得到了 BadImageFormatException。
我尝试调试服务器。捕获异常时停在断点上,我可以看到它的所有字段,但在 StackTrace 中我看到了 BadImageFormatException。
任何想法是什么导致了这个问题?
我的服务器详情 -
它是用 C# 和 .NET FW 4 编写的。
我还使用了用托管 C++ 编写的 FrameWork。
我将我的服务器编译到 x86 平台。并在 x64 机器上运行服务器。
完整的 BadImageFormatException -
System.BadImageFormatException:方法的参数和签名不匹配。 在 System.Reflection.RuntimeParameterInfo.GetParameters(IRuntimeMethodInfo 方法句柄,MemberInfo 成员,签名 sig,ParameterInfo& returnParameter,布尔 fetchReturnParameter) 在 System.Reflection.RuntimeMethodInfo.FetchNonReturnParameters() 在 System.Reflection.RuntimeMethodInfo.GetParameters() 在 System.Diagnostics.StackTrace.ToString(TraceFormat traceFormat) 在 System.Environment.GetStackTrace(异常 e,布尔需要文件信息) 在 System.Exception.GetStackTrace(布尔需要文件信息) 在 System.Exception.ToString(布尔需要文件线信息) 在 System.Exception.ToString() 在 log4net.ObjectRenderer.DefaultRenderer.RenderObject(RendererMap rendererMap, Object obj, TextWriter writer) 在 log4net.ObjectRenderer.RendererMap.FindAndRender(Object obj, TextWriter writer)
【问题讨论】:
-
BadImageFormatException只有几个可能的原因。最有可能的是,您尝试使用具有不兼容版本的 .NET Framework 或已针对不同平台(32 位与 64 位)编译的两个组件/程序集。要真正回答这个问题,我们需要更多与上述相关的信息。例如,我从堆栈跟踪中看到您正在使用 log4net。与您的应用程序相比,它是为哪个平台编译的?是否有一个单独编译的库伴随您的应用程序等。 -
不是 log4net 造成的。在调试模式下,我也看不到有问题的异常的 StackTrace。
-
其中一个程序集中的元数据有问题。没有文件损坏,这必须由它们的构建方式引起。
标签: c# x86 stack-trace badimageformatexception