C# 从其他异常的堆栈跟踪获取BadImageFormatException

C# 从其他异常的堆栈跟踪获取BadImageFormatException,c#,x86,stack-trace,badimageformatexception,C#,X86,Stack Trace,Badimageformatexception,在我的服务器中,我得到了一个异常,我捕捉到了这个异常,它似乎是正常的 问题是,当我编写它的StackTrace时,我得到了BadImageFormatException 我已尝试调试服务器。捕获异常时在断点上停止,我可以看到它的所有字段,但在StackTrace中我看到了BadImageFormatException 你知道这个问题的原因吗 我的服务器详细信息- 它是用C和.NETFW4编写的。 我还使用了在托管C++中编写的框架。 我将服务器编译到x86平台。并在x64机器上运行服务器 完整的

在我的服务器中,我得到了一个异常,我捕捉到了这个异常,它似乎是正常的

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

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

你知道这个问题的原因吗

我的服务器详细信息-

它是用C和.NETFW4编写的。 我还使用了在托管C++中编写的框架。 我将服务器编译到x86平台。并在x64机器上运行服务器

完整的BadImageFormatException-

System.BadImageFormatException:方法的参数和签名不匹配。 在System.Reflection.RuntimeParameterInfo.GetParametersRuntimeMethodInfo方法句柄中,MemberInfo成员,签名sig,ParameterInfo&returnParameter,Boolean fetchReturnParameter 在System.Reflection.RuntimeMethodInfo.FetchInReturnParameters处 位于System.Reflection.RuntimeMethodInfo.GetParameters 位于System.Diagnostics.StackTrace.ToStringTraceFormat traceFormat 在System.Environment.GetStackTraceeException e中,布尔值为needFileInfo 在System.Exception.GetStackTraceBoolean needFileInfo中 在System.Exception.ToStringBoolean needFileLineInfo中 在System.Exception.ToString中 在log4net.ObjectRenderer.DefaultRenderer.RenderObjectRenderMap RenderMap上,对象obj,TextWriter编写器
在log4net.ObjectRenderer.RenderMap.FindAndRenderObjectObjectObjectObjectObjectObjectObjectObjectObjectObjectObjectObjectObjectObjectObjectObjectObjectObjectObjectWriter中,如果您的执行进程以x86运行(如果设置为anycpu并在Win32位计算机上运行),则会发生这种情况,但在以后的某个地方,它会尝试加载一个明确编译为x64的程序集。。反之亦然。x64机器上的x64或anycpu尝试加载显式x86编译的程序集。

如果执行进程以x86的形式运行(如果设置为anycpu并在Win32位机器上运行),则会发生这种情况,但在以后的某个地方,它尝试加载已显式编译为x64的程序集。。反之亦然。x64或x64机器上的任何CPU尝试加载显式x86编译程序集。

是否使用Spring.NET?最近,我在WCF中实现IErrorHandler以记录异常时遇到了同样的问题,在我的例子中,问题出现在Spring.NET中。我已经将Spting.NET更新为1.3.1版,现在可以正常工作了

来自changelog
[SPRNET-1284]-IL代码生成可能导致Windows 2008中System.BadImageFormatException出现异常

是否使用Spring.NET?最近,我在WCF中实现IErrorHandler以记录异常时遇到了同样的问题,在我的例子中,问题出现在Spring.NET中。我已经将Spting.NET更新为1.3.1版,现在可以正常工作了

来自changelog
[SPRNET-1284]-在Windows 2008中,IL代码生成可能导致System.BadImageFormatException(System.BadImageFormatException)(某些混淆器在注入无效元数据时可能导致此异常。

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

只有几个可能的原因。最有可能的情况是,您试图使用两个组件/程序集,它们的.NET Framework版本不兼容,或者是为不同的平台编译的32位组件/程序集与64位组件/程序集。要真正回答这个问题,我们需要更多与上述相关的信息。例如,我从堆栈跟踪中看到您正在使用log4net。与您的应用程序相比,它是为什么平台编译的?是否有一个单独编译的库伴随着你的应用程序,等等。不是log4net造成的。在调试模式下,我也看不到有问题异常的堆栈跟踪。其中一个程序集中的元数据有问题。除了文件损坏之外,这一定是由它们的构建方式造成的。只有几个可能的原因。最有可能的情况是,您试图使用两个组件/程序集,它们的.NET Framework版本不兼容,或者是为不同的平台编译的32位组件/程序集与64位组件/程序集。要真正回答这个问题,我们需要更多与上述相关的信息。例如,我从堆栈跟踪中看到您正在使用log4net。与您的应用程序相比,它是为什么平台编译的?是否有一个单独编译的库伴随着你的应用程序,等等。不是log4net造成的。在调试模式下,我也看不到有问题异常的堆栈跟踪。其中一个程序集中的元数据有问题。除了文件损坏之外,这一定是由它们的构建方式造成的。