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 =…

0

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