ASP.NET XML Web サービスの基本

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

ASP.NET には Web サービスの内部動作用のインフラストラクチャが用意されているため、開発者は特定の Web サービスの機能の実装に専念できます。ASP.NET を使用した Web サービスを有効にするには、ファイル名の拡張子が .asmx のファイルを作成し、このファイル (場合によって別ファイル) で Web サービスを宣言して、Web サービス メソッドを定義する必要があります。手順については、「チュートリアル : ASP.NET を使用した基本的な XML Web サービスの構築」に記載されています。ここでは詳細を説明します。

Web サービスの宣言

ASP.NET で Web サービスを作成する場合、テキスト ファイルの先頭に必須の @ WebService ディレクティブを配置し、ファイル名の拡張子を .asmx とします。.asmx ファイルが存在し、@ WebService ディレクティブが配置されていると、Web サービスの URL アドレスがその実装に関連付けられます。また、Web サービス クライアントで表示できるメソッドとデータ型を定義する Web サービス クラスも実装します。

定義する Web サービス クラスは、.asmx ファイルに直接含めるか、別のファイルに含めることもできます。別のファイルを使用する場合は、ファイルをアセンブリにコンパイルする必要があります。必要に応じて、Web サービスを実装するクラスに WebService 属性を適用できます。Web サービスを実装するクラスは、WebService クラスから派生させることができます。

Web サービスを実装するクラスにオプションの WebService 属性を適用することによって、Web サービスを説明する文字列と共に、Web サービスの既定の XML 名前空間を設定できます。既定の名前空間の初期値は http://tempuri.org となっていますが、Web サービスを公開する前に変更することを強くお勧めします。これは、誤って既定の名前空間 (<http://tempuri.org/>) を使用している他の Web サービスと、公開する Web サービスを区別する必要があるため重要です。

オプションとして、ASP.NET を使って作成した Web サービスを実装するクラスを WebService クラスから派生させて、ApplicationSessionUserContext などの共通 ASP.NET オブジェクトにアクセスできます。Application プロパティと Session プロパティにより、Web アプリケーションまたは特定のセッションが有効な間、格納状態や受信状態にアクセスできます。状態管理の詳細については、「方法 : ASP.NET を使用して作成した Web サービスで状態を管理する」を参照してください。認証が有効な場合は、User プロパティに、Web サービスの呼び出し元の ID が格納されます。Web サービスはこの ID を使用して、要求が承認されているかどうかを判断できます。認証の詳細については、「XML Web サービスのセキュリティ」を参照してください。Context プロパティにより、Web サービス クライアントの要求に関するすべての HTTP 固有情報にアクセスできます。Context プロパティの詳細については、「WebService.Context プロパティ」を参照してください。

Web サービス メソッドの定義

Web サービスを実装するクラスのメソッドは、Web サービスの要求を受信したり、応答を送信する機能を自動的に持つわけではありませんが、ASP.NET を使って作成した Web サービスでは、この機能を追加することは非常に簡単です。WebMethod 属性をパブリック メソッドに適用します。Web 経由の通信が可能な Web サービス クラスのメソッドを、Web サービス メソッドと呼びます。

Web サービス メソッドは、Web サービスが使用するメッセージング インフラストラクチャの主要部分です。つまり、クライアントと Web サービスは、既定ではメッセージ (具体的には SOAP メッセージ) を使用して通信します。クライアントは Web サービスに SOAP 要求を送信し、Web サービス メソッドは通常 SOAP 応答を返します。Web サービスは、Web サービス記述言語 (WSDL) で定義されている操作を使用して、受け入れるメッセージの種類を定義します。これらの操作は、Web サービス内の各 Web サービス メソッドと相関関係があります。これらの各 Web サービス メソッドは、クラスのメソッドを使って ASP.NET で定義されていますが、最終的にネットワーク経由で送受信されるデータは XML にシリアル化する必要があります。そのため、Web サービスは DCOM の代替ではなく、業界標準を使用してプラットフォーム間で通信を行うためのメッセージング インフラストラクチャであると理解することが重要です。

参照

処理手順

チュートリアル : ASP.NET を使用する基本的な XML Web サービスの構築

リファレンス

WebService Class
WebServiceAttribute Class
WebMethodAttribute Class

その他のリソース

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