.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」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|