1

私のシナリオは次のとおりです(Win7、VS2010、.NET 4.0):

「Any CPU」用にコンパイルされた外部会社からの .NET アセンブリがあります (corflags.exe で検証済み)。このアセンブリは、外部企業からもネイティブ dll を読み込みます。このネイティブ dll には、x86 と x64 の 2 つのバージョンがあります。両方ご用意しております。

コンソール アプリケーションを作成するときは、.NET アセンブリを追加し (ネイティブ DLL の 1 つが .NET アセンブリによって検出されることを確認しながら)、その .NET ライブラリからクラスの 1 つのインスタンスを作成し、プログラムを開始します。大丈夫。

ただし、WCF サービス内でまったく同じ手順を実行すると、BadImageFormatException が発生します。明らかなことは、ターゲットプラットフォームでエラーを検索するか(「Any CPU」、「x86」、「x64」を試しました)、ネイティブDLLを交換しようとしています(x86とx64の両方を試しました)が、それは役に立ちません. ところで、すべての組み合わせを試しました...

問題が何であるかを知っている人はいますか?

ラース

PS: WcfSvcHost と IIS WCF ホストで発生した BadImageFormatExceptionを読みました。著者が述べているように、WcfSvcHost.exe を 32BIT としてフラグ付けすることで同様の問題を解決しましたが、WcfSvcHost.exe は厳密な名前が付けられているため、辞任できません。彼がどうやってそれを機能させたのかわからない...

4

1 に答える 1

1

WcfSvcHostへの依存関係を削除し、AppPoolを32ビットまたは64ビットに明示的に設定できるローカルIISでサービスをホスト/デバッグすることができます。それが私がすることです。

于 2011-05-07T08:56:57.960 に答える