Glimpse を使って ASP.NET アプリをリモート診断する


Web アプリケーションのデバッグやトレースの方法はさまざまありますが、例えば Windows Azure などのサーバー側に配置した状態で ASP.NET アプリケーションを診断したい場合などに今回紹介する Glimpse が便利です。

Glimpse は、ASP.NET Web アプリケーションの診断 (Diagnostics) フレームワークで、オープンソースとして開発されています。使い方はとても簡単で、NuGet パッケージマネージャーから ASP.NET アプリケーションに簡単に組み込むことができます。


● Glimpse のインストール

[NuGet パッケージの管理] ダイアログで Glimpse を検索すると、Glimpse.MVC3 や Glimpse.MVC4 などいくつかのパッケージが見つかります。例えば ASP.NET MVC 4 のアプリケーション プロジェクトでは、Glimpse.MVC4 パッケージをインストールします。

image

Glimpse をインストールすると、プロジェクトに Glimpse のアセンブリが追加されると共に Web.config に ASP.NET ハンドラー (Glimpse.axd) が設定されます。


● Glimpse を使う

Glimpse をインストールした Web アプリケーションで http://[アプリケーション URL]/Glimpse.axd を開くと下記のページが表示されます。

image

ここで [Turn Glimpse On] をクリックして Glimpse の診断を有効にしてから、再度対象のアプリケーションを表示します。すると、ページの右下に Glimplse のアイコンが表示されるようになります。

image

このアイコンをクリックすると診断ウィンドウが表示され、各種情報を見ていくことが出来るようになります。下記は、リクエスト処理のタイムライン表示の一例です。

image

● リモート環境でアプリケーションの診断を行う

Glimpse を使って、Windows Azure などに配置したアプリケーションの診断も行うことができます。デフォルトではローカル環境でのみ診断が有効になっているので、リモート環境でも診断が行えるように Web.config の Glimpse 要素の設定を変更します。下記の通り、コメントアウトされている runtimePolicies 要素を有効にすればリモートでの診断が可能になります。

<glimpse defaultRuntimePolicy="On" endpointBaseUri="~/Glimpse.axd">
<!-- If you are having issues with Glimpse, please include this. It will help us figure out whats going on.
<logging level="Trace" />-->
<!-- Want to use Glimpse on a remote server? Ignore the LocalPolicy by removing this comment.-->
<runtimePolicies>
<ignoredTypes>
<add type="Glimpse.AspNet.Policy.LocalPolicy, Glimpse.AspNet"/>
</ignoredTypes>
</runtimePolicies>
</glimpse>


Windows Azure Web サイトに配置した ASP.NET アプリケーションで Glimpse 診断を使った例が下記です。サーバーの各種情報 (System Assemblies のバージョンなど) も確認できます。

image


また、System.Diagnostics を利用したトレース出力も Glimpse の Trace ウィンドウに表示されます。

using System.Diagnostics;
...

public ActionResult Index()
{
Trace.TraceInformation("Home/Index was called.");
Trace.TraceError("This is Bad!");
....

image


こういった便利機能が、NuGet を通して簡単にプロジェクトに追加できるのはとても便利ですね。この Glimpse はそれほど頻繁に使うものではないかもしれませんが、覚えておくときっと役に立つときがくるのではないでしょうか。。。

Comments (0)

Skip to main content