IIS Developer Express について

この記事は IIS Express が Bata リリース時点で記述されたものです。正式リリース後の改訂記事が以下の URL にありますので、そちらをご覧ください。 http://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 についてのさらに詳しい情報をご紹介させていただきます。   ( 図 : WebMatrix での Web サイト設定画面 ) IIS Developer Express とは ScottGu のブログ においてさえ、“IIS Express” と記述され、我々もそう呼ぶことが多いのですが、正式名称は “IIS Developer Express” といいます。 その名前に含まれる “Developer” という文字が示す通り、IIS Developer Express は、現在の最新バージョンである IIS 7 を軽量かつ自己完結型とし、開発者向けに最適化したものです。 Web…

1

About Cassini.

みなさんは “Cassini” ( カッシーニ ) をご存じでしょうか? 正式デビュー後は “ASP.NET 開発 サーバー” と呼ばれています。 Visual Studio で ASP.NET プロジェクトを実行したときに、画面の右下にひっそりと表示される、そう、まるで路傍にひっそりと咲く花のような "それ" です。 図 : "ASP.NET 開発サーバー" こと Cassini が実行されたところ Cassini は、IIS がない環境でも ASP.NET の開発が行えるよう、 Visual Studio に搭載されている簡易的な Web サーバーです。 これにより、IIS が付属していない Windows のエディションを使用しているユーザーや、なんからの事情で IIS をインストール、使用できないユーザーであっても ASP.NET アプリケーションの開発を行うことができるのです。 登場以来、今も多くの ASP.NET 開発者のコードを実行し、支えてきた Cassini でしたが 先日発表された IIS Express の登場により、近い将来歴史の表舞台から姿を消すことになりました。 今回は、今まさに押し寄せる時代の波間に消え去ろうとしている “ASP.NET 開発サーバー”…


Web Farm Framework 2.0 Beta for IIS 7 の概要

Web Farm Framework 2.0 がリリースされておりました。 Overview of the Web Farm Framework 2.0 Beta for IIS 7 http://learn.iis.net/page.aspx/907/overview-of-the-web-farm-framework-20-beta-for-iis-7/ 名前の通り、Web サーバーでファームを構成する際の、複数サーバーにまたがる設定、コンテンツの配置、管理などをフレームワーク化し、作業を軽減するためのものです。 勉強がてら概要を訳してみましたので興味のある方はご覧ください。 なお、正確に内容を把握されたい方は原文をご覧ください。(私ゃ英語の独特の表現とか、よくわかりませんので。。)   Web Farm Framework 2.0 Bata for IIS7 概要 Microsoft Web Farm Framework ( WFF ) 2. 0 for IIS 7. 0 は、プロビジョニング、スケーリング、および複数のサーバーの管理を簡素化します。 管理者はシームレスに複数サーバーのプロビジョニングをおこない、コンテンツを展開し、elastic スケーリングを有効にするのためにそれらを使用することができます。 Web Farm Framework を使用して、サーバー ファームのプロビジョニングと健常性に関する最新のステータスを提供し、統一されたインターフェイスを通じてサーバー (もしくはサーバー ファーム) の操作を実行できます。 また、効率的な方法でウェブインフラストラクチャを利用して管理コストを下げ、継続的にサーバファームの管理を簡素化することも可能です。…


オープン ソース カンファレンス 2010 Kansai@Kyoto で登壇してきました

先週の土曜日 (2010/07/10) 、オープン ソース カンファレンス 2010 Kansai@Kyoto にて、『クリック一発!(?) OSS アプリを Windows 環境に 簡単にインストールする方法』 というタイトルで登壇してきました。 京都は高校の修学旅行以来だったので合間に観光でも、と思ったのですが、日帰り出張ということで時間的に間に合わず、上賀茂神社と清明神社を巡るので精一杯でした。( しっかり観光してますね、ははは。) 2 つとも今話題のパワースポットということで、ここで TechEd 2010 に向けてのパワーを充電して帰ろうと思ったのですが、移動に使用したバスで座れないうえ、結構な時間がかかり、帰りの新幹線に乗り込むころには、パワースポットで得た以上のパワーを使い果たしぐったりとしておりました。 肝心の OSC はいうと、参加者も多く、各展示のところでは、入場者が自分の PC を取り出して、その場でなにやら設定を始めたりと、コミュニティイベントならではの自由な雰囲気にあふれておりました。 さて、私のセッションでは、話し始めて数分でマイクの電池がなくなり、以後、肉声でがんばるという試練めいた状況でありつつも、マイクロソフトのオープンソースへの取り込み、Web PI の説明でオーディエンスのハート ♥ を鷲掴み!!、と、思ったのもつかの間、PHP ランタイムや IIS の詳しい話題になるや、オーディエンスのテンションが激下がりしていくのを感じて、今までかいたことのない汁、ちがった、汗をしとどにかくはめになりました。 いや~、人間の体って、いろんな汗をかくものですね。 “オープン ソース” という名前が冠されているイベントということで、ガチでコードを書いている猛者ばかりが集まるかと思いきや、単にオープンソース アプリケーションの愛好家な人も多かったようです。いまどきの オサレ な男子やフェミニンな女子の姿もちらほらあったのが印象的でした。(※) (※ けっして、ガチでコードを書く猛者に方々には オサレ な男子やフェミニンな女子がいないと言っているのではありません。….えぇ、まぁ個人的にいないとは思っていますけどねw) セッションの際、もし Web に接続できない場合用に作成したスライドをアップしましたので、興味のあるかたはぜひご覧ください。   Ocs2010 kyoto nonweb View more presentations…


Web PI で MySQL のインストールが完了しない場合のひとつの対処方法

来週の土曜日 (2010/07/10) に オープンソース カンファレンス 2010 KYOTO にて、マイクロソフトのオープンソースへの取り組みと、Web PI についてお話しをさせていただくということで、デモ、諸々を含めセッションの仕込みをしております。 ここで Web PI をご存じない方のために簡単に紹介させていただきましょう。 Web PI は、正式には Microsoft Web Platform Installer という名前のツールで、これを使用すると WordPress や XOOPS といった人気のオープンソースのアプリケーションを Windows XP 以上の OS に簡単に “セットアップ” してくれるのです。 “セットアップ” とわざわざ記述したとおり、Web PI が行うのは単純なファイルのコピーではありません。Web サーバーのインストールはもちろん、アプリケーションが必要とするランタイムやデータベースのインストール、はては設定まで行ってくれる非常に親切なツールなのです。 図 : Web PI の画面   さて一昨日、Web PI のインストールデモの確認をしていましたら、セットアップが完了しないという現象に出くわしました。 具体的には、インストールのプログレス画面で、 MySQL 5.1 Essential のインストールが完了せず、ウィザードが前に進まなくなってしまうという現象です。 当初、インストールに時間がかかっているだけかと思い、一晩放置プレしておいたのですが、翌朝出社しても画面が進んでいませんでした。 さすがに一晩おいておけば、ご家庭で作ったカレーでさえそこそこのコクが出るというのに、アプリケーションのインストールが完了しないというのは正常な状態であるとは言えないでしょう。 私は当然のなりゆきとしてハングアップを疑い、タスクマネージャーを確認しました。…

1

IIS 7 版 mod_info 的なものをサービスとして使用するツール

先日のブログで、IIS 7 用の Apache における mod_info、mod_status 的なモジュール (ハンドラー) について書きました。 先日のブログにも書いたとおり、このモジュールは HTTP リクエストを受けると、その時点のサーバーのリソース使用状況の情報を返し、クライアントが Web ブラウザであれば、その情報を目視することができます。 しかし、実際に送られてくるデータは HTML ではなく XML であり、かつ、SOAP や JSON でもデータを返せるので、アプリケーションはこれをサービスとして使用することができます。 言ってみれば、羊の皮を被った娘、ちがった、狼的な仕様となっているわけですが、そんな 便利な機能もそれを使うクライアントが無くてはただの Web ページと変わりません。 そこで今回は、このモジュールが出力する XML を受け取って表示を行うアプリケーションの作成方法について書きたいと思います。 ステップとしてはこんなとこでしょう。 1. Web サーバーにリクエストを出し、レスポンスを取得する 2. XML を処理する ここからは上記 2 点についての具体的な簡単なコードをご紹介しましょう。あ、.NET で言語は C# ですよ。   Web サーバーにリクエストを出してレスポンスを受け取るには? じつは、いちいち項目を上げるほどでもなく簡単な記述で可能です。 具体的には以下のように記述します。 //リクエストのインスタンスを生成 HttpWebRequest request = (HttpWebRequest)WebRequest.Create(http://mySweetWebServer/iisreswatch/iis.info); //クレデンシャルを指定 request.Credentials =…


IIS 7 版 mod_info、mod_status 的なもの

最近、イベントの登壇やらドキュメントの作成やらで、とんとコードを書く機会が無かったのですが、久々にひとつ書くことができました。 今回作成したのは Apache における mod_info や mod_status のようなものです。 作成に至った経緯はほかでもありません。 現在、IIS の師匠、奥主さんと二人で 『インターネット Web サーバー構築ガイドライン (ドラフト版) 』 というのを書いているのですが、その作業中に、奥主さんより、“Apache には動作状況を Web ブラウザから確認できる mod_info や mod_status というのがあるんだけと、IIS にはないみたいだから作って” と依頼されたためです。 そう、IIS7 では “ないものは作ってしまえ” ということが可能なのです。 というわけで、作成することになったのですが、いまさら Apache と同じものを作ってもあんまりクールじゃないなぁってことで、”IIS  における、IIS ユーザーのための、IIS による状態報告ツール” といういうことで IIS の構造に合わせて作成してみました。 また、情報の出力形式についても、人間だけでなく、アプリケーションからも使用できるようにしようということで、コンテンツの出力正式に複数のフォーマットをサポートするようにしました。 具体的には以下のような機能を持っています。   各 IIS オブジェクトのリソース状況のブラウザ表示 IIS 7 の構造に合わせ、”サーバー本体”、”Web サイト”、”アプリケーションプール”、”ワーカープロセス” に分かれて現在の状態が表示されます。またページ内のリンクをクリックすることで、目的のオブジェクトのさらに詳細な情報にアクセスすることができるようになっています。 図 : IIS リソース情報画面 たとえば、ワーカープロセスのページでは、現在処理を行っているリクエストの簡単な内容なども確認することができます。…

1

WordCamp YOKOHAMA 2010 に登壇しました。

先週の土曜日 (2010/5/29) に開催されました WordCamp YOKOHAMA 2010 に登壇してまいりました。 http://yokohama2010.wordcamp.jp/ このテのイベントに参加というと、”MS の人間は風当たりが強そう” と思われるかもしれませんが、じつはまったくそんなことはありません。 過去、オープンソースカンファレンスなどにも出展してきましたが、みなさん本当にフレンドリーな方が多くて、じっさいアテンドしていても非常に楽しかったりします。 さて、私の担当したセッションの内容は以下のとおりです。 セッションタイトル : 『WordPress と Windows って? ~ 5 つの知っ得 ~』 スライド WordPress と Windows って?~ 5 つの知っ得 ~ View more presentations from osamum. セッションの録画 <参考情報> Windows Live Writer http://windowslive.jp.msn.com/writer.htm Internet Explorer 8 http://www.microsoft.com/japan/windows/products/winfamily/ie/function/default.mspx Microsoft Web Platform http://www.microsoft.com/web/ Web Platform Installer & Web…


IIS7 の機能を拡張してみる-指定した言葉の出力禁止

IIS7 は ASP.NET とのパイプライン (リクエストを受けてからレスポンスを返すまでの処理) の統合により、パイプラインにかかわる処理を .NET のマネージコードで記述することができます。 リクエストのハンドリング方法については、既に機能を紹介していますので、今回はレスポンスはハンドリングし、その中のコンテンツを書き換える方法について紹介させていただきます。 この "コンテンツの内容を書き換える = 出力を行う" という処理は本来ハンドラで行う処理ですが、今回はモジュールを使用したものを紹介します。 そのため紹介さていただきますサンプルコードは、既にハンドラが設定されているページ、つまりは、*.aspx や *.php 等の、サーバーサイドで何らかの処理を行うページでしか動作しません。 それなのに、なぜあえてモジュールとして実装したかというと、ええ、….じつは私の勘違いでモジュールとして作ってしまったからです、はい(恥) 以前、php アプリケーション内のリンクを、フレンドリな短い URL に書き換えるというモジュールを作成したこともあり、"ASP.NET 以外のページでも動作 = 静的なファイルでも動作" と短絡的に考えていたのですが、今回モジュールを作り終えてテストしたところ、静的なファイルでは動作しないこと&理由が判明したしだいです。(すみません)   今回のサンプルの機能 のっけから非常に残念な感じの今回のサンプルなのですが、どういった機能を実装したかというと、レスポンス内のコンテンツから任意の言葉を伏字にするという機能です。 この機能を使用すると、任意に指定したワード (言葉) がコンテンツに含まれていた場合、代替えのキャラクタで置き換えてくれるため、サイトの訪問者の目に触れさせたくない言葉をブロックすることができます。 人によっては "そんな機能が本当に必要か? 必要なのか??" と考えられるかもしれません。 しかしどうでしょう、 たとえば、取引先の社の Web サイトを覗いたときに、そのコンテンツ内に公序良俗に反する言葉や、差別用語や、社会通念上許されざる言葉が平然と使用されていたとしたら、今後その会社と深いリレーションを築きたいと思うでしょうか? また、いくら仲の良い友人からのメールであっても、幼児の三大爆笑ワードである "ば〇、う〇こ、ちん〇ん" といったような、下品な言葉が毎回多用されていたりしたら、その人の品性と精神的健康状態について強い疑問を持たざるを得ないでしょう。 さらに"言葉" には、理解した瞬間に著しく相手の気分を害するものもあります。しかもそれは、人間の肉体に備わった機能ではブロックすることはできません。 たとえば、今、このドキュメントをお読みいただいているわけですが、ご自身の肉眼に実際に写っているものは、じつは "文字" でも "言葉" でなく、モニタ上に並んだ映像素子の点滅でしかありません。 モニタに表示された光のパターンを脳が文字と認識し、文字の並びから文としての解釈が行われ、私の言葉が"再生" (処理が実行) されているのです。 この一連の処理は、人間の読解における基本的な処理ですが、基本的であるがゆえにその一連の処理は無条件に実行され、解釈される内容の良し悪しにかかわらず、その実行は防ぎようがないのです。…


IIS7 の機能を拡張してみる-レスポンスヘッダー内のサーバー名の改ざん

Web サーバーが返す HTTP レスポンス内 のヘッダー Server には、Web サーバーの名前が含まれています。 以下は、実際に IIS 7.5 が返すレスポンスヘッダー中の Server の値です。 Server: Microsoft-IIS/7.5 この情報は、インターネットでどのような Web サーバーが使用されているかの調査等に利用されていますが、管理者の方からは、セキュリティの観点からこの情報を隠蔽、あるいは削除したいというご要望を受けることがあります。 残念ながら、IIS 7 の標準の機能では、この機能は提供されておりません。(※) (※) IIS 管理ツールにある [HTTP 応答ヘッダー] の機能を使用してカスタムヘッダーの追加/削除などは可能です しかし、先日の記事でご紹介したように、.NET を使用して IIS の機能を拡張することでその機能を実装することができます。 この処理に使用する コードの量は非常に少なくシンプルであり、コンパイルも不要かつ、配置も容易ということで、驚くほど簡単にその機能を実装することが可能です。 セキュリティを強化するため、使用している Web サーバーが Microsoft 社の Internet Information Server 7 であることを世間の目からひた隠しに覆い隠す、という行為は、セキュリティの向上という観点から理解できますが、しかし、これは、あくまでも私一個人の心情の問題にすぎないのですが、日々仕事で IIS にかかわる者としては少々複雑な気分にならざるをえません。 たとえばもし、お子さんから "同級生に見られたくないから授業参観に来ないで"とか、あるいは恋人から "人に見られなくないから離れて歩いて" とか言われたらどうでしょう? この悲惨な心情たるや、あえてここで語るまでもないでしょう。 しかし、心ある人であればあるほど、無理をしてまで、その残酷な要求に笑顔で応えてしまうものなのです。 私が本日ここで、レスポンスヘッダーから IIS の名前を消すサンプルコードを紹介させていただくのも、もしかしたらそういう理由なのかもしれませんね。…

2