最近の質問で応えたWindowsで実装されているIIS(インターネットインフォメーションサービス)のアプリケーションプールの基本設定にある「マネージ パイプラインモード」について備忘録的に投稿します。
IISのアプリケーションプール
アプリケーションプールは、IIS上でアプリを稼働させる場合に、避けて通ることが出来ないというか重要な技術です。
ASP.NETの他、PHPなどIIS上で利用出来るCGI系のプログラムは、このアプリケーションプールと呼ばれるプロセス上で動作させることになります。
古くは、ISAPI拡張と呼ばれるモジュールでIIS上でアプリケーションを稼働させる仕組みにしていたマイクロソフトですが、 WebサーバーとWebアプリケーションのプロセスを分離させてセキュリティと動作安定性を確保している中心が、このアプリケーション プールになります。
様々な設定項目がありますが、「マネージ パイプライン モード」と「ID」、「32ビット アプリケーションの有効化」の3点が理解できれば、大抵のトラブルには対処ができます。
今回は、この中の「32ビット アプリケーション 有効化」について説明していきます。
詳細設定の32ビット アプリケーション有効化項目
IISの管理ツールで「詳細設定」で表示される画面の「32ビット アプリケーションの有効化」の部分です。既定値では、「False(無効)」が設定されています。
当たり前ですが32ビット版のIISには、この項目は存在しません。
簡単に説明すると、「IISが操作する外部プログラムで32ビット版を許可する」です。
選択肢は、「True(有効)」と「False(無効)」の2択です。
旧アプリケーションの移植用
経験上、この設定は「False」にしておけば大丈夫です。わざわざ「True」を選択する必要はありません。
有効にすると、IISは外部プログラムを呼び出す場合(例 OLEのバインド呼び出しなど)従来の64ビットではなく、32ビット側を呼び出してくれるようになります。
唯一必要になってくるのは、サードパーティ製のライブラリ(ActiveXコントロールや、DLLダイナミックリンクライブラリなど)古い形式のアプリケーションを外部プログラムとして利用する場合くらいです。
新規開発する場合において、アプリケーションの「32ビット アプリケーションの有効化」は「False(無効)」の1択で大丈夫です。
まとめ
「32ビット アプリケーションの有効化」によるエラーやトラブルは、ASP.NETなどの内部処理で外部プログラムを呼び出して利用する場合に発生します。
以前のIISで動作していたWebアプリを新しいWindowsサーバー上で動作させたい場合にも発生する可能性があります。
利用しているライブラリのアーキテクチャ(32ビット、64ビット)を確認して、32ビット向けにリリースされているアプリであれば、64ビット版を入手するか、この「32ビット アプリケーションの有効化」を「True(有効)」にする検討をします。
IISのトラブル解決には、この他に 「マネージ パイプライン モード」と「ID」 があります。
スポンサーリンク
最後までご覧いただき、ありがとうございます。