2012年4月12日木曜日

.NET Frameworkバージョンアップエラー


現在下記の環境で動作しているプログラム(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に変更します。

これで、動作はするようになりました。細かい作りであったりする部分は修正する必要はありますが。。。