|
.NET TIPS SOAPメッセージをトレースするには?デジタルアドバンテージ2003/07/18 |
![]() |
|
|
|
Webサービスやそのクライアントのデバッグでは、クライアントから発行されるSOAPリクエストや、サーバとクライアント間でやり取りされるSOAPメッセージをトレースし、そのメッセージ内容を確認したいときがある。このような場合には、「Microsoft SOAP Toolkit」に含まれるトレース・ユーティリティ「MSSoapT」を便利に活用できる。次の画面は、このMSSoapTを使用して、実際にSOAPメッセージのトレースを行っているところだ。
![]() |
| MSSoapTによるSOAPメッセージのトレース例 |
| MSSoapTはMicrosoft SOAP Toolkitに含まれるツールである。このツールを使用するとWebサービスとそのクライアント間でやり取りされるSOAPメッセージの内容をのぞき見ることができる。 |
Microsoft SOAP Toolkitは、非.NET環境で動作するWebサービスおよびWebサービス・クライアントを実装するためのツールキットであり、マイクロソフトより無償で提供されている。日本語版の最新バージョンは次のリンクよりダウンロードできる。
ツールキットにはいくつかのコンポーネントやドキュメントなどが含まれているが、SOAPメッセージをトレースするだけなら、セットアップ時にMSSoapT([Debugging Utilities]の項目)だけを選択してインストールすればよい。
MSSoapTの使用例
ここではMSSoapTの使用例として、コンピュータ用語辞書のWebサービスであるNetDictionaryと、そのクライアントのサンプル・プログラム(WinICD)を用いた場合について解説する。これらはどちらも.NET Framework上で動作する、シンプルなXML WebサービスとWindowsアプリケーションである。
まずはこのサンプル・プログラムを展開し、ソリューション・ファイルであるWinICD.slnをダブルクリックして開いて、Visual Studio .NET(VS.NET)上からWinICDが正しく実行できることを確認していただきたい。次の画面のようにコンピュータ用語が検索でき、その意味が表示されていればOKだ。
![]() |
| コンピュータ用語辞書Webサービスのサンプル・クライアントWinICD |
| このサンプル・プログラムは、WebサービスであるNetDictionaryにアクセスして、コンピュータ用語の意味を調べることができる。 |
次に、ソリューションを開いているVisual Studio .NETから、プロキシ・クラスを定義している「icd.cs」を選択してコードを表示させる(このコードはWeb参照の追加により自動生成されたものである)。プロキシ・クラスであるICDクラスのコンストラクタが次のように定義されているはずだ。
public ICD() {
this.Url = "http://www.iwebmethod.net/icd1.0/icd.asmx";
}
まず、URLのホスト名部分(www.iwebmethod.net)を次のように、「localhost:8080」に書き換える。www.iwebmethod.netはNetDictionary Webサービスを提供しているサーバである。
public ICD() {
//this.Url = "http://www.iwebmethod.net/icd1.0/icd.asmx";
this.Url = "http://localhost:8080/icd1.0/icd.asmx";
}
これにより、WinICDの実行時には、Webサービスを呼び出すためにローカル・ホストの8080番ポートにアクセスしようとする。
次にMSSoapTを起動し、メニューより[File]−[New]−[Formatted Trace]を実行する。これにより次のようなダイアログが開く。
![]() |
| MSSoapTのトレース設定ダイアログ |
| Webサービスのクライアント側でSOAPメッセージをトレースするには、まずこのダイアログで監視するローカル・ホストのポート番号と、フォワード先(Webサービス)のサーバおよびサーバのポート番号を指定する。そして[OK]ボタンをクリックするとトレースが開始される。 |
このダイアログで、「localhost」となっている[Destination host:]の部分を、先ほどコード上で修正したWebサービスのサーバである「www.iwebmethod.net」に書き換える。ここでの設定の意味は、ローカル・ホストの8080番ポートを監視し、そこに来るアクセスをwww.iwebmethod.netの80番ポートにフォワードするということだ。つまり、MSSoapTはプロキシ・サーバのように動作し、この設定によりWinICDからのWebサービス呼び出しはいったんMSSoapTを経由してサーバに届くようになる。
[OK]ボタンをクリックするとトレースが開始する。WinICDを実行して“C#”を検索したときにやり取りされるSOAPメッセージを表示しているのが冒頭のMSSoapTの画面である。![]()
| カテゴリ:開発環境&ツール 処理対象:Webサービス |
| 「.NET TIPS」 |
TechTargetジャパン
- 新人プログラマーのためのInsider.NETの歩き方 2012 (2012/5/22)
晴れて.NETプログラマーとなる新人が効率的に開発技術を習得するには? 大量にある記事群の中から新人が読むべきお勧めを厳選して紹介 - jQuery MobileでJavaScriptプログラミング (2012/5/17)
jQuery Mobileは手軽なだけでなく、JavaScriptのAPIも充実しており、独自機能の実装もできる。今回は「グローバル設定」と「イベント」を解説 - Windows上で開発するための開発環境構築入門 (2012/5/16)
Windowsを使ってチームで開発している? なのにサーバOSを設定・運用した経験がない? そうなら、今すぐ学ぼう - 「コントラクト」でアプリのサンドボックスを乗り越える! (2012/5/11)
Metroスタイル・アプリはサンドボックスの中で動作する。それを乗り越えてほかのアプリと連携する仕組み「コントラクト」を解説
|
|
キャリアアップ
スポンサーからのお知らせ
- - PR -
イベントカレンダー
- - PR -





