非同期 XML Web サービス メソッド

このトピックの対象は、レガシ テクノロジに特定されています。XML Web サービスと XML Web サービス クライアントは以下を使用して作成してください。 Windows Communication Foundation.

長時間の実行でスレッドをブロックするメソッドを呼び出す Web サービス メソッドのパフォーマンスを向上するには、それを非同期 Web サービス メソッドとして公開します。非同期 Web サービス メソッドを実装すると、スレッドがスレッド プールに返されたときに、そのスレッドで別のコードを実行することができます。これにより、スレッド プール内で数が限られているスレッドをもう 1 つ実行して、システム全体のパフォーマンスとスケーラビリティを向上できます。

Web サービス メソッドを非同期アクセス用の 1 組のメソッドに変換するための詳しい手順については、「方法 : 非同期 Web サービス メソッドを作成する」を参照してください。その他のコード例については、「方法 : Web サービス メソッドで非同期呼び出しをチェーンする」を参照してください。

一般に、I/O 操作を実行するメソッドを呼び出す Web サービス メソッドは、非同期の実装に適しています。このようなメソッドの例には、他の Web サービスと通信するメソッド、リモート データベースにアクセスするメソッド、ネットワーク I/O を実行するメソッド、サイズの大きいファイルを読み書きするメソッドなどがあります。このようなメソッドはハードウェアで長時間実行されるので、Web サービス メソッドを実行するスレッドがブロックされたままになります。Web サービス メソッドが非同期的に実装されている場合、そのスレッドを開放して別のコードを実行できます。

Web サービス メソッドが非同期的に実装されているかどうかに関係なく、クライアントは Web サービス メソッドと非同期的に通信できます。Web サービス メソッドが同期的に実装されている場合でも、Web サービス記述言語 (WSDL.EXE) ツールによって生成されたプロキシ クラスでは、.NET クライアントに非同期の通信が公開されます。プロキシ クラスには、各 Web サービス メソッドと非同期的に通信するための Begin メソッドおよび End メソッドが含まれています。このため、Web サービス メソッドを非同期的に実装するか同期的に実装するかは、パフォーマンスに基づいて判断する必要があります。

83bkx91t.note(ja-jp,VS.100).gif注 :
非同期 Web サービス メソッドを実装しても、クライアントと、Web サービスをホストするサーバーとの間の HTTP 接続には影響しません。HTTP 接続は切断されず、プールされません。

参照

処理手順

方法 : 非同期 Web サービス メソッドを作成する
方法 : Web サービス メソッドで非同期呼び出しをチェーンする

概念

XML Web サービスとの非同期通信

その他のリソース

ASP.NET を使用した XML Web サービス