Share via


【IIS6】 ASP.NET2.0アプリケーションの展開Webcastより

お約束を以前していたように英語のWebcastから要約を何個かお届けしようと思います。まずはこちら。私の視聴メモをベースにしているので箇条書き風ですが、お役に立てば幸いです。実際にはデモをやっているので下記をご理解いただいた上でデモだけ見れば10分程度で済むかなと。ただ、Application Center とかでバリバリ展開とかをおやりになられているケースではこの内容は概要・一般論になってしまうかもしれませんので事前にご容赦ください。

TechNet Webcast: Efficient Deployment and Management of ASP.NET 2.0 Applications on IIS 6.0 (Level 300)

このWebcastを要約したいと思います。1時間40分の英語は大変ですよね、聞くの。話しているのはChris AdamsというIIS+Web開発ツールのチームにいる製品の部分的な責任を持つProgram Managerです。かなり早口でした。^_^;

まずはIISのWebcastシリーズ集を紹介しているWeb URL。
https://www.iiswebcastseries.com

イントロ:ASP.NETのご紹介

ASP.NETは.NETフレームワークの一部である。以上。

主なASP.NET関連のコンセプト

GACってなんだ。事前定義された.NETアセンブリーの「レジストリー」である。
GACに本当に登録する必要があるのか?binにおけばいいのか。
GACUTILを使って実際にGACに登録する。
ADSUTIL、IISWEB.VBSでアプリケーションプールとWebサイトを作る。
sn.exe(.NETフレームワークSDK)でサインする。サインされていないとGACに登録できない。
C#の場合、CSCでビルド、/keyfile:生成したキーを指定→DLLを生成
gacutil -i xxx.dll でGACに登録
.NET1.1で動かしているのか2.0で動かしているのか
両方が共存するケースが増えてくる
Web拡張で両方許可されているかチェック
サイトのプロパティページでASP.NETタブを開き、バージョンを指定する
 主にスクリプトマップ(.aspxが何とか)を変更し、指定したバージョンのフォルダのものを利用するように変更をかける
 GACを何故使わないでBINを使えないのかの説明が開発者から明確に出なければ押し返してもいい。
 web.configには add assembly が必要になる
 IISAPP SP1とR2で追加された機能 IISAPP /a apppool /r リサイクル
 GACUTIL /uf が結構使える。
  Code Access Security・・・ユーザーコードが考えるポイント、システムはフルになる。
 GACに登録しないをデフォルトで考え、例外的に登録することを考える。

ASP.NET構成ファイルについて

 メタベースとmachine.config+web.config
  IIS7ではここが統合されて楽になりますね。
IIS6のアーキテクチャでのメタベース。インメモリーなのでクロスプロセスで更新を検知しないといけない構造になっている。
 IIS6でのパイプラインの説明、IISとASP.NETで二つのパイプライン。
  ここでもIIS7の統合モードではそうならないという話。
  ISAPIフィルターがBINディレクトリの中を防御している

ASP.NET2.0アプリケーションの展開と管理

アプリの展開については自動化を推奨する
 aspnet_regiis、IISweb.vbs、ADSUTIL.vbsなどを使って自動化して確実な展開を
 microsoft.comの運営でもこの辺りを組み合わせた標準ツールを作っている 
 aspnet_regiisは自分がどのバージョンを使っているかよく認識すること
 同一のマシンでWindows 2003 R2では1.1、2.0が少なくともある
 -r は一気にスクリプトマップを変更しにいくので要注意。
 adsutil.vbs CREATE W3SVC/AppPools/busyPool "IISApplicationPool"
IIS.web.vbs /create C:\MySource "MySite" /ap BusyPool /dontstart
aspnet_regiis.exe -enable -ir
aspnet_regiis.exe -s W3SVC/<metabase path>
 各プロパティタブの説明
 IIS7でよく話す内容ですが、AllowOverride=falseで階層継承のロックダウン。<___location>もASP.NETでできる話。

バージョン管理

 アプリケーションプールでは一つのバージョンしか実行できない
 ASP.NETがインストールされていない場合、スクリプトマップは2.0に
 1.1がインストールされている場合、IISスクリプトマップは1.1のままに

ASP.NET2.0ソリューションをx64環境で

 WOWでの動作でもx64ではASP.NETの仮想メモリが2GBから4GBになる
  MS.COMは多く使っている
  adsutil.vbs set W3SVC/AppPools/Enable32BitAppOnWin64 "true"
 ネイティブ 64ビットでのASP.NET2.0
  仮想メモリーは制限なし
  パフォーマンスのメリットあり
  MMCスナップインがx64対応していない

ということで、かなりアプリ開発者の方には当然のように思える内容かもしれませんが、IT管理者の方にとっては非常にコンパクトに重要な要素が詰め込まれている内容だなと思いました。日頃 開発の方に指定を受けたり、誰かが決めた標準で、構成設定だったり、あるいは管理・展開について見直して改善できる点が見つかるとうれしいですね。GACへの登録依頼は理由付けを求めるべきという意見はなかなか面白いですね。

Comments

  • Anonymous
    January 01, 2003
    msft:technet:hirookun氏のポスト 再認識のためにもみること。【IIS6】 ASP.NET2.0アプリケーションの展開Webcastより