次の方法で共有


ASP.NET AJAX 用の WCF サービスの作成

Microsoft ASP.NET AJAX を使用すると、応答性が高く使い慣れたユーザー インターフェイス要素を備えた豊富なユーザー エクスペリエンスを含む Web ページをすばやく作成できます。 ASP.NET AJAX は、クロスブラウザー ECMAScript (JavaScript) テクノロジと動的 HTML (DHTML) テクノロジを組み込んだクライアント スクリプト ライブラリを提供し、ASP.NET 2.0 サーバーベースの開発プラットフォームと統合します。 ASP.NET AJAX を使用すると、Web アプリケーションのユーザー エクスペリエンスと効率を向上させることができます。

ASP.NET AJAX は、クライアント スクリプト ライブラリと、堅牢な開発フレームワークを提供するために統合されたサーバー コンポーネントで構成されます。 ASP.NET ページからサービスにアクセスするには、ページ上の ASP.NET Script Manager コントロールにサービス URL が追加されると、通常の JavaScript 関数呼び出しとまったく同じように見える JavaScript コードを使用してサービス操作を呼び出すことができます。

ほとんどの Windows Communication Foundation (WCF) サービスは、適切な ASP.NET AJAX エンドポイントを追加することで、ASP.NET AJAX と互換性のあるサービスとして公開される場合があります。

Visual Studio を使用している場合は、AJAX 対応 WCF サービス用の事前構築済みテンプレートを使用できます。このテンプレートは、ASP.NET Web サイトまたは Web アプリケーションを操作するときに [ 新しい項目の追加] ダイアログで使用できます。

Visual Studio テンプレートを使用していない場合は、ASP.NET AJAX エンドポイントを作成する 2 つの方法があります。

WCF Web HTTP プログラミング モデルの概要で説明されている Web プログラミング モデルは、ASP.NET AJAX サービスで使用できます。 具体的には:

  • WebGetAttribute属性とWebInvokeAttribute属性を使用して、HTTP GET 動詞と HTTP POST 動詞を選択できます。 正しく使用すると、アプリケーションのパフォーマンスが大幅に向上する可能性があります。 詳細については、「 方法: ASP.NET AJAX エンドポイントの HTTP POST 要求と HTTP GET 要求のいずれかを選択する」を参照してください。

  • ResponseFormatプロパティとResponseFormatプロパティを使用して、サービスが既定の JavaScript Object Notation (JSON) ではなく XML データを返すようにすることができます。 ASP.NET AJAX フレームワークでこれを行うと、JavaScript クライアントは XML DOM オブジェクトを受け取ります。

    Warnung

    これを機能させるには、操作でコンテンツ タイプを text/xml に設定する必要があります。 それ以外の場合、JavaScript クライアントは XML DOM オブジェクトではなく XML を含む文字列を受け取ります。

    コンテンツ タイプが適切に設定された XML データを返す操作の例を次に示します。

    [OperationContract, WebGet(ResponseFormat=WebMessageFormat.Xml)]
    public XElement GetData()
    {
        XElement x;
        //Get some data here...
    
        WebOperationContext.Current.OutgoingResponse.ContentType = "text/xml";
        return x;
    }
    
  • WebGetAttributeおよびWebInvokeAttribute属性の他のプロパティは、ASP.NET AJAX との互換性が必要な場合は変更できません。 web プログラミング モデルの他の側面は、ASP.NET AJAX 呼び出し規則に違反していない限り使用できます。

より高度なシナリオでは、WCF での AJAX サポートの追加の詳細を理解する必要があります。

  • JavaScript を使用して AJAX ページ クライアントと WCF サービスの間でデータを転送する方法、および .NET Framework 型が JavaScript 型にマップされる方法の詳細については、「 JSON およびその他のデータ転送形式のサポート」を参照してください。

  • URL ベースの認証や ASP.NET セッション情報へのアクセスなど、ASP.NET 機能を利用するには、構成を使用して ASP.NET 互換モードを有効にすることができます。

WCF の AJAX エンドポイントは、ASP.NET AJAX フレームワークなしで使用される場合もあります。 これを行うには、WCF での AJAX サポートのサポート アーキテクチャを理解する必要があります。 このアーキテクチャの詳細については、「 WCF Web HTTP プログラミング オブジェクト モデル」を参照してください。 この方法を示すコード サンプルについては、 JSON と XML を使用した AJAX サービスを参照してください。

こちらも参照ください