方法: 構成を使用して ASP.NET AJAX エンドポイントを追加する
Windows Communication Foundation (WCF) では、クライアント Web サイトの JavaScript から呼び出される ASP.NET AJAX 対応のエンドポイントを使用できるようにするサービスを作成できます。 このようなエンドポイントを作成するには、他のすべての Windows Communication Foundation (WCF) エンドポイントと同様に構成ファイルを使用するか、または構成要素を必要としないメソッドを使用します。 ここでは、構成を使用する方法について説明します。
サービス エンドポイントを ASP.NET AJAX 対応にする手順には、WebHttpBinding を使用し、<enableWebScript> エンドポイント動作を追加するようにエンドポイントを構成することが含まれます。 エンドポイントの構成後、サービスを実装してホストする手順は、WCF サービスで使用されるものに似ています。 実際の例については、「HTTP POST を使用する AJAX サービス」を参照してください。
構成を使用せずに ASP.NET AJAX エンドポイントを構成する方法の詳細については、「方法: 構成を使用せずに ASP.NET AJAX エンドポイントを追加する」を参照してください。
基本的な WCF サービスを作成するには
ServiceContractAttribute 属性でマークされたインターフェイスを使用して、基本的な WCF サービス コントラクトを定義します。 各操作を OperationContractAttribute でマークします。 Namespace プロパティが設定されていることを確認します。
[ServiceContract(Namespace = "MyService")] public interface ICalculator { [OperationContract] // This operation returns the sum of d1 and d2. double Add(double n1, double n2); //Other operations omitted… }
ICalculator
を使用して、CalculatorService
サービス コントラクトを実装します。public class CalculatorService : ICalculator { public double Add(double n1, double n2) { return n1 + n2; } // Other operations omitted… }
名前空間ブロック内にラップすることにより、
ICalculator
とCalculatorService
の実装の名前空間を定義します。namespace Microsoft.Ajax.Samples { //Include the code for ICalculator and Calculator here. }
サービスに ASP.NET AJAX エンドポイントを作成するには
動作の構成を作成し、サービスの ASP.NET AJAX 対応エンドポイントに <enableWebScript> 動作を指定します。
<system.serviceModel> <behaviors> <endpointBehaviors> <behavior name="AspNetAjaxBehavior"> <enableWebScript /> </behavior> </endpointBehaviors> </behaviors> </system.serviceModel>
WebHttpBinding と、前の手順で定義した ASP.NET AJAX 動作を使用するサービスのエンドポイントを作成します。
<system.serviceModel> <services> <service name="Microsoft.Ajax.Samples.CalculatorService"> <endpoint address="" behaviorConfiguration="AspNetAjaxBehavior" binding="webHttpBinding" contract="Microsoft.Ajax.Samples.ICalculator" /> </service> </services> </system.serviceModel>
IIS でサービスをホストするには
IIS でサービスをホストするには、アプリケーションで .svc 拡張子の新しいサービス ファイルを作成します。 このファイルを編集して、サービスに応じた @ServiceHost ディレクティブ情報を追加します。 たとえば、
CalculatorService
サンプルに対応するサービス ファイルのコンテンツには、次の情報が記述されています。<%@ServiceHost language=c# Debug="true" Service="Microsoft.Ajax.Samples.CalculatorService" %>
IIS でのホストの詳細については、「方法: IIS で WCF サービスをホストする」を参照してください。
サービスを呼び出すには
- エンドポイントは .svc ファイルを基準とした空のアドレスの位置に構成されているので、サービスは使用可能であり、service.svc/<operation> に対して要求を送信することでサービスを呼び出すことができます。たとえば、service.svc/Add では
Add
操作を呼び出します。 これは、ASP.NET AJAX Script Manager コントロールのスクリプト コレクションにエンドポイント URL を入力することで使用できます。 例については、「HTTP POST を使用する AJAX サービス」を参照してください。