【WebMatrix】 WebMatrix と 従来の ASP
正直 延命系なのでほかの人が興味持ってくれないだろうから私が書くエリアだと思われ(笑)、本日のセミナーで30分しか話していない余勢をかって調べているナウ。(爆)
結果から言うと、特に .config 系に書き込みをしなくても自動的に asp.dll を IIS Express ワーカープロセスに読み込むようです。果たしてどういうメカニズムなのかちょっと解明しておきましょう。
基本的に IIS として ASP を動かす要件は、
・asp.dll が存在すること(インストールされていること)
・applicationHost.config で asp.dll が読み込まれ、かつ ASP 系の構成が書かれていること。具体的には Handler セクションに ClassicASP というエントリーがある。
・asp.dll というのは ISAPI 拡張なので IsapiModule も有効になっている必要がある。
だと思われる。
※ 各検証前にちゃんと製品版で機能するようになったサイトの削除(コンテンツもを選ぶ)で環境をきれいにした。
※ asp.dll がロードされているかは Sysinternals.com の Process Explorer で見ています。
検証1:テンプレートで「パン」を選び、サイトを作成
結果:
asp.dll はロードされない。
system.webServer 下に asp セクションの定義はある。
handler の定義に Classic ASP がある
検証2:page.asp という Classic ASP ページを追加
結果:
まあ当然だが、状況は変わっていない。
検証3:page.asp を実行してみる
結果:
ページは正しく表示される
asp.dll はロードされている 7.5.7600.20853
system.webServer 下に asp セクションの定義はある
handler の定義に Classic ASP がある
つまりは設定はされていて、拡張子 .asp が実行されないとロードされないだけ。
つまりは動くようになっているそもそも。
ちなみに ClassicASP ハンドラー定義は %IIS_BIN%\asp.dll を指しています。
これはデフォルトであれば、c:\Program Files\IIS Express\asp.dll になります。
普通の IIS であれば c:\Windows\System32\Inetsrv\asp.dll ですね。
ということだと思います。今度 完全版の IIS と Express の .config 系の差異を見てみようと思いますが、WebMatrix とともに利用する IIS Express は今日 私がセミナーで予測したように Classic ASP も想定内でちゃんと動作します。
IIS Express が 32ビットのみなので 64ビット系でしないといけない心配もありません。
でも applicationHost.config を覗いた限りだといくつかの globalModules セクションでのエントリーがコメントアウトされています。FileCacheModule, HttpCacheModule, DigestAuthenticationModule, TraceModule, WebDAVModule 他です。なので IIS7.5 のフルスペックのように動くかは少しやはり疑わしいですね。.config を書き換えると動くのかどうかはちょっと検証してみないとという結論ですね。一歩前進。
つーことだ。(*^_^*)
折角なのでうんちくを少し足しておくと、ASP関連設定の asp セクションの書き方はスキーマのファイルを見ることで扱える値の候補がわかるものの以下を見た方が早い。
IIS 設定リファレンス(ちょっと IIS7.5 に更新した時点で更新されていない箇所があるかも)
https://technet.microsoft.com/ja-jp/library/ee431558.aspx
英語の本家情報は下記。こっちは最新。
https://www.iis.net/ConfigReference/system.webServer/asp
でも asp のセクションはあくまでも ASP 関連の設定だけで、要件のモジュール設定とかハンドラー設定は別のセクションですから。こんな細かいところを見るより設定したい状況を普通の IIS7.5 で作ってコピーした方が早い気が。(*^_^*)
この投稿から読んだ人は以前に私がやったセミナーに関する下記の投稿をお読みください。
ここに IIS7 と ASP に関する話の最新情報をまとめたものが掲載されています。
【IIS7】 資料2つほど SlideShare で公開しています
ここには 11/12 に実施した ASP に関するセミナーの資料を載せています。
【TFセミナー】 本日お越しいただいた皆様、ありがとうございました
【IIS7】 Active Server Pages を Windows Server 2008 R2 で動かす
【IIS7】 Active Server Pages のトレースをとりたいと思ったら
ではでは。あー すっきりした。