[改訂版]IIS 7.5 Express について
先週の金曜日 (2011/01/14) に、弊社の新しい無償開発ツール WebMatrix がリリースされ、IIS 7.5 Express も正式リリースされました。
Beta の段階では、IIS.NET の Overview のページ に IIS Developer Express と記述されていたり、ScottGu's Blog では IIS Express と記述があったりと、名称についてはいまいちはっきりしていませんでしたが、どうやら正式名称は IIS Express に落ち着いたようです。
今回の記事は、以前このブログに投稿した『IIS Developer Express について』 の、IIS 7.5 Express 正式リリース後のアップデート記事になります。
Beta からの変更点のみ記載しようと思いましたが、読みづらくなってしまいそうなので、全編を記載することにしました。
IIS Express とは
IIS Express は、現在の最新バージョンである IIS 7 を軽量かつ自己完結型とし、開発者向けに最適化したものです。
IIS Express を使用すると、最新のバージョンの IIS での開発と Web サイトのテストを簡単に行うことができます。
IIS Express の入手
2011 年 1 月 現在、IIS Express は以下の方法で入手することができます。
WebMatrix のインストール
WebMatrix は IIS Express を使用して Web 開発を行うため、自動的に IIS Express がインストールされます。
Web Platform Installer からのインストール
Web Platform Installer 3.0 からは IIS Express を単体でインストールすることができるようになっています。
Microsoft ダウンロード センターからのダウンロード
マイクロソフトのダウンロード センターからは、IIS 7.5 Express のインストール msi をダウンロードすることができます。なお IIS 7.5 Express のインストールパッケージの展開を行うには、.NET Framework 4 が必要です。
その他、Visual Studio 2010 SP1 Beta を使用すると、ASP.NET の開発に使用する Web サーバーを ASP.NET 開発サーバー ( Cassini ) ではなく IIS Express を指定することができます。
なお、IIS Express は、Visual Studio 2010 SP1 には含まれないため、別途入手してインストールする必要があります。
Visual Studio 2008 でも、手動での設定になりますが、開発用 Web サーバーとして IIS Express を使用することができます。
IIS Express と IIS の違い
IIS Express は IIS7 から派生したものであり、IIS 7 のコア機能をサポートしていますが、いくつかの違いがあります。
大きく異なるのはワーカー プロセスの管理方法です。
IIS 7 では、Web アプリケーションのアクティブ化、非アクティブ化を Windows プロセス アクティブ化サービス (WAS) がサイレントで行うためユーザーが直接それをコントロールすることはできません。
しかし、IIS Developer Express には WAS が無いため、ユーザーはアプリケーションのアクティブ化、非アクティブ化を完全にコントロールすることができます。
ユーザーは WebMatrix、Visual Studio 2010 の SP1、またはコマンドラインを使用して IIS Express のサイトを開始することができます。 また既に動作しているウェブサイトはシステムトレー アプリケーションを使用して終了することができます。
IIS Express は Hostable Web Core ( HWC ) 上のラッパーとしてデザインされています。
Hostable Web Core = “ホスト可能な Web コア” は、IIS 7 が提供する API であり、WAS によって管理されない独立した Web サーバーを記述することができます。
以下の表は、 IIS 7 と IIS Express の主な違いの一部を示しています。
Area | IIS 7 | IIS Developer Express |
配布メカニズム | OS に同梱 | アウト ・ オブ ・ バンド WebMatrix ベータ版の製品リリースの一部として付属 |
Windows クライアントのサポートされるエディション | Vista Home Premium, Business, Enterprise, and Ultimate | XP 以降の Windows |
Windows 7 Home Premium, Professional, Enterprise, and Ultimate | ||
サポートされている .NET Framework のバージョン | v2.0 SP1 以上 | v2.0 SP1 以上 (.NET 4.0 が必要) |
サポートされているプログラミング言語 | Classic ASP, ASP.NET, および PHP | Classic ASP, ASP.NET, および PHP |
プロセスモデル | Windows プロセス アクティブ化サービス (WAS) が、自動的に構成されているサイトを管理 | ユーザーがサイトの起動/終了を行う |
Hostable Web Core サポート | ○ | ○ (IIS Developer Express は HWC のレイヤーとして実装) |
サポートされているプロトコル | HTTP, FTP, WebDAV, HTTPS, and WCF (オーバー TCP, Named Pipes, and MSMQ を含む) | HTTP, HTTPS and WCF over HTTP |
Non-admin サポート | WAS は管理者権限での実行が必要 | 標準ユーザでほとんどのタスクを完了することが可能 |
開発者ごとの環境サポート | - | Yes. 構成ファイル、設定、および Web コンテンツはユーザーごとに維持される |
Visual Studio サポート | ○ | Visual Studio 2010 SP1 では Cassini の代わりに IIS Developer Express を使用することが可能 Visual Studio 2008 では手動で設定することで IIS Express を使用することが可能 |
ランタイム拡張 | See https://www.iis.net/download/All for a complete list. | URL Rewrite と FastCGI がビルトインされている |
管理ツール | IIS Manager、AppCmd.exe | WebMatrix |
システムトレイサポート | - | ○ |
認証、承認、圧縮などに関する内蔵のIIS 7x モジュール | ○ | ○ |
なお、以前投稿した記事と同じく、その他の情報について FAQ のページから抜粋して記述しておきましょう。
WebMatrix と IIS Express の関係
マイクロソフトWebMatrixは、ASP.NET と PHP の開発を合理化するシンプルな統合スイートです。IIS Express は WebMatrix に含まれています。開発者は WebMatrix が提供する UI を介して IIS Express を設定、操作することができます。
サポートされている OS
Windows XP SP3 +
Windows Vista SP1 +
Windows 7
Windows Server 2008
Windows Server 2008 R2
Windows Server 2003 SP2 +
ただし、Windows Server 2008 Server Core はサポートされません。( R2 の ServerCore はサポートされます)
64 bit マシンのサポート
IIS 7.5 Express は WoW64 サブシステムを使用して 64 ビット アーキテクチャをサポートします。完全な 64 ビット サポートは、将来のリリースで考慮されます。
SSL のサポート
IIS Express は SSL をサポートします。セットアップ プログラムは既定で自己署名サーバー証明書をマシンストアにインストールし、ポート 44300 44399 を使用して SSL を構成します。また管理者としてカスタム SSL 証明書を配置して Web サイトを構成することもできます。
IIS Express の PHP サポート
IIS Express は PHP のための CGI と FastCGI モジュールを含んでいます。
IIS Express を使用して PHP アプリケーションを開発する最善の方法は WebMatrix をインストールすることです。WebMatrix は自動的に PHP のインストールと設定を行います。さらに Web App ギャラリーから WordPress や Joomla 等の人気のあるアプリケーションをダウンロードしてカスタマイズすることもできます。
IIS Express の再頒布、もしくは他のアプリケーションへの埋め込みについて
IIS 7.5 Express のライセンスは、MSI の再頒布を許可しています。開発者は MSI を自らの製品に含めるか、インストーラーにチェインすることができます。ただし、それ以外の方法では配布することはできません。
“Classic”パイプラインのサポートについて
IIS Express は IIS 7 の "統合" と "クラシック" マネージパイプラインモードをともにサポートします。
IIS Express と管理者特権
既定の IIS Express の構成において、ユーザは管理特権なしでウェブサイトを実行することができます。また、セットアッププログラムは標準のユーザーが SSL を使用したサイトを実行するのを可能にするよう、自己署名サーバー証明書をインストールします。
ただし、以下のものを含む特定のタスクは管理者権限を必要とします。
- 80 番ポートもしくは、その他の予約済みのポートを使用して Web サイトを実行
- カスタム SSL 証明書をインストールする場合
- ネットワークフェイシングで Web サイトを実行する場合 (リモートマシンからのリクエストを受信する場合)
管理者のユーザー権利は、IIS Express を Windows Server 2003 SP2 + 上で使用する場合も必要です。
コマンドラインのサポート
IIS Express はコマンド ラインを使用して起動することができ、さまざまな実行時オプションをサポートしています。コマンドラインを使用する方法については、WebMatrix のサイトまたは Running IIS Express from the Command Line を参照してください。
IIS Express の XCOPY デプロイメントについて
コア IIS Express ランタイムは XCOPY デプロイメントが可能です。しかし、現在 XCOPY デプロイメントは公式にサポートされた機能ではありません。
外部トラフィックのサポート
IIS Express の既定の設定では、ローカルホスト上の要求だけが処理されます。しかし、外部のトラフィックを有効にするようにバインドを変更することができます。セキュリティ上の理由から、この設定を行うには、コンピューターの管理者権限が必要です。
UNC ネットワークパスの動作について
UNC ネットワークパスを使用することができます。IIS と同様、これらのシェアからコンテンツにアクセスするために適切な UNC 資格情報を構成する必要があります。
net.tcp や MSMQなどの非HTTPプロトコルをサポートについて
サポートされません。IIS Express は HTTP と HTTPS のみサポートします。
FTP
IIS Express は FTP サービスを含んでいません。ただし、WebMatrix および Visual Studio がプロダクション環境への FTP を使用したWeb アプリケーションの発行をサポートしていることを覚えておいてください。
IIS 7 モジュールのサポートについて
IIS Express は現在、URL Rewrite と FastCGI がビルトイン サポートされて出荷されています。需要に基づいて、今後のリリースで他のモジュールのサポートを追加して行く予定です。
異なるホストヘッダーのサポートについて
IIS Express は別のホスト ヘッダー バインドをサポートします。IIS と同様、この操作を完了するには、コンピューターの管理者権限が必要です。また、"hosts" ファイルにネットワークの構成に適切なホスト マッピングを追加するなどの OS 側で追加の設定を行う必要もあります。
IIS Express の設定ファイルについて
IIS Developer Express は IIS7.x でサポートされているのと同じ “applicationhost.config” と “web.config” ファイルを使用します。
主な違いは、IIS Developer Express では、構成がユーザーごとに維持されるということです。
特に、IIS にはグローバルな "applicationhost.config" ファイルがあるのに対し、IIS Developer Express ではユーザー固有の情報を %userprofile%\documents\IISexpress\config フォルダー内の "applicationhost.config" ファイルで維持します。
これにより、標準のユーザーに IIS Developer Express を実行させ、また、複数のユーザーが同じマシン上で個別に、互いに競合することがなく作業させることができます。
いくつかの設定を設定および変更するには、管理者権限を必要とします。
同じプロセス内での複数のアプリケーションの実行について
IIS と同じく、IIS Developer Express は同じサイト下の複数のアプリケーションが同じプロセス内で動作することをサポートします。
WCF アプリケーションのサポートについて
IIS Express は WCF アプリケーションをサポートします。ただし前述したように WCF は HTTP か HTTPS での使用でのみサポートされます。MSMQ と net.tcp 上の WCF はサポートされていません。
SharePoint Foundation 2010 の実行について
SharePoint Foundation 2010 は IIS Express がサポートしていない IIS の機能を使用しているので動作しないでしょう。
他の Web サーバーとの side-by-side 実行について
IIS Developer Express は、競合するバインディングがない限り と他の Web サーバーと side-by-side で実行することができます。
たとえば、ユーザーは IIS Developer Express と 各 Windows 付属の IIS を実行することができます。
IIS Developer Express の既定の設定では、IIS とのポートのコンフリクトを避けるため、IIS が使用する 80 番ポートではなく、8080 番ポートで既定の Web サイトをホストします。
IIS Developer Express とその他の Web サーバーのどちらもポート 80 をリッスンするようにしようとすると、バインディングの競合が発生します。
----- ・ ----- ・ ----- ・ ----- ・----- ・ ----- ・----- ・ ----- ・----- ・ ----- ・----- ・ ----- ・----- ・ ----- ・
今回は、先日正式にリリースされた IIS Express について紹介しました。
次回は、前から宣言している WebSitePanel のローカライズの方法が書ければいいな、と思っているのですが、Web Deploymet のネタやら PHP がらみのネタやら、先に公開しておいた方がよさそうなネタもいろいろあるのでどうなるか分かりません。
とにかく、日本語のドキュメントがない、そもそも公開されているドキュメントがない、といったものをいろいろとこのブログに書いていければな、と思っておりますので、今後もお楽しみにしていただければ幸いです。