他の例外のstacktraceからbadimageFormatexceptionを取得します
-
25-10-2019 - |
質問
私のサーバーでは、私がキャッチする例外を取得していますが、それは大丈夫のようです。
問題は、私が書いているときです スタックトレース 私は得ています badimageformatexception.
サーバーをデバッグしようとしました。例外をキャッチするときにブレークポイントで停止し、そのすべてのフィールドを見ることができますが、スタックトレースではbadimageFormatexceptionが表示されます。
この問題の原因は何ですか?
私のサーバーの詳細 -
.NET FW 4を使用してC#で書かれています。
また、管理されたC ++で記述されたフレームワークも使用します。
サーバーをx86プラットフォームにコンパイルします。 x64マシンでサーバーを実行します。
完全なbadimageformatexception-
System.BadimageFormatexception:メソッドのパラメーターと署名は一致しません。 at System.Reflection.RuntimeParameterInfo.GetParameters(IRuntimeMethodInfo methodHandle, MemberInfo member, Signature sig, ParameterInfo& returnParameter, Boolean fetchReturnParameter) at System.Reflection.RuntimeMethodInfo.FetchNonReturnParameters() at System.Reflection.RuntimeMethodInfo.GetParameters() at System.Diagnostics.StackTrace System.Environment.getStackTrace(例外E、boolean needfileInfo)のsystem.exception.getStacktrace(boolean needfileinfo)の.exception.toString(boolean needfilelineinfo)の.exception.exception.TOSTRING()のexception(Boolean needfileInfo)の。 objectRenderer.defaultrenderer.RenderObject(RenderMap RenderMap、Object OBJ、TextWriter Writer)at Log4Net.ObjectRenderer.RenderMap.FindandRender(Object OBJ、TextWriter Writer)
解決
spring.netを使用していますか?最近、WCFでIerrorhandlerを実装してログの例外を実装したときに同じ問題があり、私の場合はSpring.netに問題がありました。 spting.netをバージョン1.3.1に更新しましたが、今では正常に動作します。
changelog [sprnet -1284]から - ILコード生成はsystem.badimageformatexceptionをもたらす可能性があります2008
他のヒント
これは、実行プロセスがx86として実行されている場合(anyCPUに設定されてWin32ビットマシンで実行されている場合)が、どこかで道路のどこかで、x64または逆として明示的にコンパイルされたアセンブリをロードしようとする場合に発生します。 x64(またはx64マシンのanycpu)は、明示的なx86コンパイルされたアセンブリをロードしようとします。
一部の難解な人は、無効なメタデータを注入すると、この例外を引き起こす可能性があります。