現在下記の環境で動作しているプログラム(ASP.NET)のマイグレーションを進める上で問題が発生しました。
現在動作環境:
・Windows Server 2003
・.NET Framework 1.1
マイグレーション後動作環境
・Windows Server 2008 R2
・.NET Framework 4.0
プログラムは、.NET Framework 4.0にてコンパイルすることはできました。(いくつか警告は出ています。)
次に、IIS上に配置して動作させると、「BadImageFormatException: 間違ったフォーマットのプログラムを読み込もうとしました。」とのエラーが発生しました。
原因は、64ビットのアプリから32ビットのDLLを呼び出すことにありました。32ビットのDLLは使わざるのを得ない部分ですので、全体の動作環境を32ビットに統一することにしました。
方法は、IISのワーカープロセス自体を32ビットに設定します。
1.インターネットインフォメーションサービス(IIS)マネージャを開き、対象のアプリケーションプールを選択します。そして、「詳細設定」をクリックします。
2.「32ビットアプリケーションの有効化」の項目をTrueに変更します。
これで、動作はするようになりました。細かい作りであったりする部分は修正する必要はありますが。。。