IIS Developer Express について

この記事は IIS Express が Bata リリース時点で記述されたものです。正式リリース後の改訂記事が以下の URL にありますので、そちらをご覧ください。 https://blogs.msdn.com/b/osamum/archive/2011/01/19/iis-7-5-express.aspx 

Tech・Ed Japan 2010 にご参加いただきました皆様、ありがとうございました。

Tech・Ed 最後の WrapUp セッションでは、私のチームのエバンジェリスト全員で WebMatrix についてご紹介させていただいたのですが、今回はそのセッションで私が担当した IIS Developer Express についてのさらに詳しい情報をご紹介させていただきます。

 image
( 図 : WebMatrix での Web サイト設定画面 )

IIS Developer Express とは

ScottGu のブログ においてさえ、“IIS Express” と記述され、我々もそう呼ぶことが多いのですが、正式名称は “IIS Developer Express” といいます。

その名前に含まれる “Developer” という文字が示す通り、IIS Developer Express は、現在の最新バージョンである IIS 7 を軽量かつ自己完結型とし、開発者向けに最適化したものです。

Web アプリケーションの開発や Web サイトをテストする際に簡易的ながら IIS7.x のパワーを提供します。

IIS 7 をIIS Developer Express は、ウェブサイト開発などを容易にするための以下のような特徴があります。

  • サービスとして稼働せず、ほとんどのタスクを実行するのに管理者ユーザー権利が不要
  • ASP.NET と PHP アプリケーションを動作させることが可能
  • 複数のユーザーが、おなじコンピュータ上で各々独立して作業することが可能

 

IIS Developer Express と  IIS 7 の違い

IIS Developer Express は IIS7 から発展したものであり、IIS7 のすべての特徴をサポートしますが、いくつかの相違点があります。

たとえば IIS 7 では、Web アプリケーションのアクティブ化、非アクティブ化を Windows プロセス アクティブ化サービス (WAS)  がサイレントで行うためユーザーが直接それをコントロールすることはできませんが、IIS Developer Express には WAS が無いため、ユーザーはアプリケーションのアクティブ化、非アクティブ化を完全にコントロールすることができます。

IIS Developer Express  はコマンドラインを使用してサイトを起動することが可能であり、WebMatrix Beta システムトレイを使用することで Web サイトを起動したり、停止させたりすることもできます。

IIS Developer Express はラッパーとして Hostable Web Core  ( HWC の) の上に設計されており、そのためWAS によって管理されていない独立した Web サーバーとして使用することができます。

以下のチャートは IIS7 と IIS Developer 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 以上
サポートされているプログラミング言語 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, WebDAV, and WCF over HTTP
Non-admin サポート WAS は管理者権限での実行が必要 標準ユーザでほとんどのタスクを完了することが可能
開発者ごとの環境サポート

-

Yes. 構成ファイル、設定、および Web コンテンツはユーザーごとに維持される
Visual Studio サポート

将来のバージョンの Visual Studio は、IIS Developer Express が使用される
ランタイム拡張 See https://www.iis.net/download/All for a complete list. WebMatrixにはSEO、データベース管理、Web Deploy などのための標準装備が用意
管理ツール

IIS Manager

WebMatrix

システムトレイサポート

-

認証、承認、圧縮などに関する内蔵のIIS 7x モジュール

( 図 : IIS7 と IIS Developer Express の相違点)  

その他の情報について FAQ のページから抜粋して記述しておきましょう。なお、β 版であるためリリース時には変更になる個所もあるかもしれませんのでご了承ください。

サポートされている 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 はサポートされません。(.NET Framework が入らないためと思われる)

 

サポートされている .NET Framework のバージョン

.NET Fraemwork 2.0, 3.0, 3.5, 4.0

 

SSL について

使用可能です。既定のセットアップでは SSL シナリオを有効化すめために自己証明書をインストールします。

 

PHP アプリケーションの実行について

実行可能です。 IIS Developer Express は PHPと、アウトオブボックスに含まれる GCI と FastCGI をフルサポートします。

 

“クラシック” パイプラインモードのサポートについて

IIS Developer Express は IIS7 の 統合モードもクラシックモードもサポートしています。

 

標準ユーザーアカウントでの IIS Developer Express の実行について

WebMatrix もしくは Visual Studio 2010 を使用して 標準的なユーザーの作成、開発、および Web サイトの発行など、ほとんどのタスクを実行することができます。セットアップ プログラムは標準ユーザーを昇格することなく、自己署名証明書をインストールします。

より上位のユーザー権限を必要とするものには、以下のようなタスクがあります。

  • Web サイトを 80 番のポートか、その他の予約されたポートでホストする場合
  • カスタム SSL 証明書をインストールする場合
  • network-facing で Web サイトを実行する場合
  • Windows Server2003 SP2 以降で WebMatrix BetaとIIS Developer Expressを使用するとき

コマンドラインのサポートについて

IIS Developer Express さまざまな実行時オプションをサポートするために、コマンド ライン オプションを使用して起動することができます。コマンドラインを使用する方法の詳細については以下の URL をご参照ください。

https://learn.iis.net/page.aspx/870/use-the-command-line-to-run-a-webmatrix-site-or-application/

 

IIS Developer Express の XCOPY による配置について

XCOPY による配置は正式にサポートされている機能ではありません。しかしながら、XCOPY  配置を妨げるようなランタイムの依存性はありません。

 

外部トラフィックのサポートについて

既定では、ローカル ホストの要求のみ処理されます。 ただし、バインディングを変更することで外部のトラフィックを有効にすることができます。セキュリティ上の理由により、これをセットアップするマシン上の管理者権限が必要です。

 

net.tcp や MSMQなどの非HTTPプロトコルをサポートについて

サポートされません。IIS Developer Express は HTTP と WebDAV のみサポートします。

 

FTP のサポートについて

WebMatrix の UI は、プロダクション環境で FTP を使用して Web アプリケーションを公開できます。ただし、IIS Developer Express に FTP サービスは含まれません。

 

IIS Developer Express が使用する設定ファイルについて

IIS Developer Express は IIS7.x でサポートされているのと同じ “applicationhost.config” と “web.config” ファイルを使用します。

主な違いは、IIS Developer Express では、構成がユーザーごとに維持されるということです。

特に、IIS にはグローバルな "applicationhost.config" ファイルがあるのに対し、IIS Developer Express ではユーザー固有の情報を %userprofile%\documents\IISexpress8\config フォルダー内の "applicationhost.config" ファイルで維持します。

これにより、標準のユーザーに IIS Developer Express を実行させ、また、複数のユーザーが同じマシン上で個別に、互いに競合することがなく作業させることができます。

いくつかの設定を設定および変更するには、管理者権限を必要とします。

 

同じプロセス内での複数のアプリケーションの実行について

IIS と同じく、IIS Developer Express は同じサイト下の複数のアプリケーションが同じプロセス内で動作することをサポートします。

 

他の Web サーバーとの side-by-side 実行について

IIS Developer Express は、競合するバインディングがない限り と他の Web サーバーと side-by-side で実行することができます。

たとえば、ユーザーは IIS Developer Express と OS 付属の IIS  を実行することができます。

IIS Developer Express の既定の設定では、IIS とのポートのコンフリクトを避けるため、IIS が使用する 80 番ポートではなく、8080番ポートで既定の Web サイトをホストします。

IIS Developer Express とその他の Web サーバーのどちらもポート 80 をリッスンするようにしようとすると、バインディングの競合が発生します。

 

IIS Developer Express の再頒布について

IIS Developer Express の再頒布については現在のところはっきりしておりません、

IIS Developer Express の FAQ ページでは、以下のように記載がありますが、

Q: Can IIS Developer Express be redistributed or embedded in other applications?
A: The Beta version of IIS Developer Express can only run as a separate executable and cannot be redistributed or embedded.  This is being investigated for future releases.

Scott Guthrie のブログでは以下のようなコメントがされています。

以下は ScottGu's Blog - 『Introducing IIS Express 』 のコメント部分から、Scott の回答部分のスクリーンショットです。

image

"Yes - you can redistribute IIS Express with your applications. " と、ばっちりコメントしていますが (※私も本社でのイベントでも同様の説明をうけましたが)、実際にリリースがされるまでなんともいえないところです。

それと、Tech・Ed 2010 WrapUp セッションで、”IIS Express をアプリケーションに含めて配布…” の質問をお受けした際に “IIS7 に付属している WebCore を使用してください” 回答させていただいたのですが、すみません、これは誤りです。

Hostable WebCore の紹介ページ の内容を読むと、いかにも独自サービスのプラットフォームとして配布できそうな感じを受けますが、私の IIS の師匠である奥主さんが以前開発に問い合わせたところ “OS の一部なので配布はできない” との回答を得ていました。

上記の理由により、IIS7.x 付属の Hostable WebCore はアプリケーションに含めて再頒布することはできません。

誤った情報をお伝えしてしまって申し訳ございませんでした。お詫びして訂正させていただきます。

さて、それでは作成した ASP.NET Web アプリケーションと一緒に、それを動作させる Web サーバーはを配布するにはどうすればいいかと言いますと、ここで あの Cassini の出番です。

ちょうど ASP.NET の MVP である  小野修司さんが Cassini を使用して、CD-ROM から Web アプリケーションを起動する方法について記事を書かれておりますので、こちらをご紹介させていただきます。

CD-ROMから起動できるWebアプリケーション環境の構築
https://codezine.jp/article/detail/127 
※小野さんより、記事が若干古いですが Cassini のソースを入手して最新の .NET Framewok でコンパイルすれば動作すると思います、とのアドバイスをいただきました。(小野さん、感謝です!!)

さて、今回は IIS Developer Express について紹介させていただきましたが、WebMatrix には他にもたくさんの興味深い新機能が搭載されています。

また、Web Matrix をふくめ、今年の年末にかけてさまざまなものがリリース & 露出予定となっておりますのでどうぞお楽しみに。

 

Real Time Analytics

Clicky