デバッグ中や通信内容のエビデンスを残す必要があるときなどに、Silverlightとサーバ間の通信内容を確認したいときがあります。そのようなとき、FiddlerというMS製ツールを使うと便利です。
Fiddlerとは
Fiddlerは、ブラウザのプロキシとして動作し、ブラウザが行っている通信内容を表示できるツールです。Fiddlerを起動すると自動でIEのプロキシ設定が書き換わります。
インターネットオプション -> 接続タブ -> LANの設定ボタンを押すと表示されるローカル エリア ネットワーク(LAN)の設定ダイアログで設定内容を確認できます。
Fiddlerを立ち上げていないとき
Fiddlerを立ち上げているとき
Fiddlerのインストール
Download Fiddler Web Debugging Tool for Free by Telerik
.Net Framework2.0がインストールされていないマシンの場合、fiddlerインストール中にインストールするように促されます。忘れずに入れておきましょう。
ちなみに私の環境では、Fiddlerのインストール終了後、Fiddlerを立ち上げようとしたら、エラーで立ち上がりませんでした。Windows Updateで.Net Frameworkを更新したところうまく立ち上がりました。うまく実行できなかった方は.Net Frameworkの更新を試してみてください。
Fiddlerの制約
Fiddlerはhttp://localhost/やhttp://127.0.0.1/への通信内容はキャプチャできません。つまり、VisualStudioのサーバプロジェクトに配置されたWebサービスとのやり取りはキャプチャできません。もっとも、Webサービスのコードをコントロールできる状態にある場合は、Webサービスに渡された引数の内容をデバッガ確認すればよいので、あまり困ることはないと思います。
Fiddlerの動作確認
それでは、実際にFiddlerの動作する様子を見てみます。
Fiddlerを立ち上げて起き、Silverlightアプリで下記のような通信を行います。
WebClient proxy = new WebClient(); proxy.DownloadStringCompleted += new DownloadStringCompletedEventHandler(proxy_DownloadStringCompleted); // 「Silverlight」をキーワードに検索する。 string baseUri = "http://search.twitter.com/search.atom?q="; Uri uri = new Uri(baseUri + HttpUtility.UrlEncode("Silverlight")); proxy.DownloadStringAsync(uri);
すると、Fiddlerは下記のような状態になります。