火曜日, 2月 06, 2007

IIS6.0で.NETFramework1.1と2.0を共存させる

VisualStudio2005(以下VS2005)がメインの開発環境のさもえどですが、思いっきりツッカエタので備忘録的に残しておきやす(T_T)

VS2005上では、デバッグ時に自動的に仮想Webサーバーが起動するし、IIS上でもASP.NETタブで1.1と2.0の使い分けが出来る風だったので安心しまくってたら、豪快にやられました^^;

WindowsServer2003でIISManagerを使用し、該当Web仮想フォルダ上のプロパティからASP.NETタブで.NETFramework2.0と1.1の切り替えが出来る・・・ように見えます。

ところが、どうやらこれだけだと設定が不十分で、同一プロセス上で2.0と1.1を同時に使用するような設定になってしまうらしく、Framework2.0か1.1どちらかのアプリケーションが起動しなくなってしまいます。
(本番系サーバでやってしまうと、一時的にエライ騒ぎになります・・・)

修正は、このリンクを参考に修正したのですが、これだけではチョイ厳しいので、メモ書きをば・・・。
しかしまぁ、ASP.NETタブで切り替えさせるんだったら、せめてもうチョイ警告を出すなり自動でアプリケーションプールを作成するなりして欲しいなぁ・・・(>_<)

出力エラーメッセージ
①.ブラウザ出力メッセージ
サーバー アプリケーションは使用できません。
この Web サーバーでアクセスしようとしている Web アプリケーションは現在使用できません ; Web ブラウザの [更新] ボタンをクリックして再試行してください。
管理者メモ : この特定の要求エラーの原因を説明するエラー メッセージを Web サーバーのアプリケーション イベント ログで確認できます。Web サーバーのアプリケーション イベント ログを参照してエラーの原因を調べてください。

②.アプリケーションイベントログ
同じ IIS プロセスで、異なる 2 つのバージョンの ASP.NET を実行することはできません。サーバーを再構成して、異なるプロセスでアプリケーションを実行するには、IIS 管理ツールを使用してください。

詳細な情報は、http://go.microsoft.com/fwlink/events.asp の [ヘルプとサポート センター] を参照してください。



対策手順

①.IIS 6.0 で IIS 5.0 の分離モードを無効にする
1.IIS 管理コンソールを開きます。
2.[Web サイト] フォルダを右クリックし、[プロパティ] をクリックします。
3.[サービス] タブで、[IIS 5.0 プロセス分離モードで WWW サービスを実行する] チェック ボックスをオフにします。(大抵、オフになっているかと・・・)

②.IIS 6.0 でデフォルト設定ではない.NETFraemeworkバージョン用のプール指定を作成する
1.IIS 管理コンソールを開きます。
2.ローカルのコンピュータ ノードを展開します。
3.[アプリケーション プール] フォルダを右クリックし、[新規作成] をポイントし、[アプリケーション プール] をクリックします。
[新しいアプリケーション プールの追加] ダイアログ ボックスが表示されます。
4.[アプリケーション プール] ボックスに、新しいプール指定を入力し、[OK] をクリックします。

③.IIS 6.0 でASP.NET アプリケーションに.NETFraemeworkバージョン用のプール指定を割り当てる
1.IIS 管理コンソールを開きます。
2.ローカルのコンピュータ ノード、[Web サイト]、および [既定の Web サイト] を順に展開します。
3.アプリケーションのフォルダを右クリックし、[プロパティ] をクリックします。
4.[ディレクトリ] タブで、[アプリケーション プール] ボックスから目的のプール指定を選択します。

1 件のコメント:

ちゃお さんのコメント...

はじめまして。
今、まったく同じ状況で困っておりました。
「ASP.net」タブを切り替えるだけではIIS6.0はダメだったんですね。。。
他のIISではなかった現象なので(さらに本番機だったので)焦りまくっていました。
おかげで動きました!
ありがとうございました!!