Webアプリケーションで本当に奇妙な問題に遭遇しました。プラットフォームターゲットに「任意のCPU」とマークされたアプリケーションがありますが、IISで実行すると、次のようになります。
ファイルまたはアセンブリを読み込めませんでした'file:/// C:\ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Temporary ASP.NET Files \ root \ ea146e97 \ e5f133b2\App_Code.dsbuukid.dll'またはその依存関係の1つ。間違った形式のプログラムを読み込もうとしました。
この問題は、IISサーバーが64ビットのみである32ビットモードでコンパイルされているdllが原因であるように見えます。そのデルでcorflags.exeツールを実行し、次の情報を取得することで、これを確認しました。
Microsoft(R).NETFrameworkCorFlags変換ツール。バージョン4.0.30319.17929Copyright(c)MicrosoftCorporation。全著作権所有。
バージョン:v4.0.30319 CLRヘッダー:2.5 PE:PE32 CorFlags:0x3 ILONLY:1 32BITREQ:1 32BITPREF:0署名済み:0
32ビットアプリケーションを許可するようにワーカープロセスを設定することでこれを解決できますが、問題を修正してアプリを64ビットモードで実行できるようにしたいと思います。
一時ファイルを複数回削除し、マシンを再起動してみましたが、dllが32ビットモードでコンパイルされるたびに数百回実行されます。
誰かがこれがどのように起こっているか知っていますか?app_codeのコンパイルプロセスの責任は何ですか?