ASP.NETのプログラムを新環境にデプロイしたら「有効な Win32 アプリケーション」とエラーがでる

古いASP.NETのプログラムを、新しい環境でコンパイルして、アプリケーションサーバ(IIS)にデプロイして、テストしたら、下記のエラーが表示された。Visual Studio 2019上では動作している。

ファイルまたはアセンブリ 'xxxxxxxx.DLL'、またはその依存関係の 1 つが読み込めませんでした。 は有効な Win32 アプリケーションではありません。 (HRESULT からの例外:0x800700C1) 

問題は、アプリケーションサーバであるIISの設定だった。Windows Server 2019のIIS10は、デフォルトでは64ビットのアプリケーションサーバとして動作する。そのため、32ビットのDLLが混じったアプリケーションを実行するためには、IISの設定で、32ビットのアプリケーションを動作するようにしないといけなかった。

32ビットのアプリケーションを動作するようにするIISの設定方法は下記。

  1. IISマネージャー(インターネットインフォメーションサーバーマネージャー)を開く。
  2. アプリケーションプールを選択する。
  3. 右クリックして、「詳細設定」を開く。
  4. 全般にある「32ビット アプリケーションの有効化」のプルダウンで、「True」を選択する。
  5. OKをクリックする
  6. アプリケーションタスクで、「停止」して「開始」する(たぶん、リサイクルでもOK)

これで、32ビットのアプリケーションも動作するようになる。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする