次の方法で共有


方法 : ASP.NET AJAX で ASP.NET サービスを構成する

更新 : 2007 年 11 月

ここでは、ASP.NET AJAX 対応クライアント アプリケーションで ASP.NET Web サービス (.asmx ファイル) を呼び出すことができるように構成する方法を説明します。ここでは、次のタスクについて説明します。

  • クライアント スクリプトからの呼び出しを有効にするための Web サービスの構成。

  • JSON シリアル化の構成。

  • 認証サービスの構成。

  • ロール サービスの構成。

  • プロファイル サービスの構成。

構成設定は、すべて system.web.extension 構成グループで行います。詳細については、「system.web.extensions 要素 (ASP.NET 設定スキーマ)」を参照してください。

クライアント スクリプトからの呼び出しを有効にするための Web サービスの構成

次の手順では、ASP.NET Web サービスを構成して、クライアント スクリプトから呼び出すことができるようにする方法を示します。詳細については、「クライアント スクリプトへの Web サービスの公開」を参照してください。

Web サービスの呼び出しが ASP.NET AJAX 対応クライアント (スクリプト) 以外から発行された場合、その呼び出しは ScriptHandlerFactory ハンドラ クラスによって、JSON 形式ではなく SOAP 形式を使用する既定のハンドラに委任されます。この処理は内部で行われるため、ユーザーが特別な操作を行う必要はありません。この場合、Web サービスについて SOAP プロトコルを無効にすることもできます。

Web サービスについて SOAP プロトコルを無効にするには

  • 次の例に示すように、Web サイトの Web.config ファイルで、Web サービスのすべてのプロトコルを削除します。

    <system.web>
      <webServices>
        <protocols>
          <clear/>
        </protocols>
      </webServices>
    </system.web>
    

クライアント スクリプトからの呼び出しを有効にするように Web サービスを構成するには

  • Web サイトの Web.config ファイルで、ScriptHandlerFactory HTTP ハンドラを登録します。

    このハンドラが、スクリプトから Web サービスへの呼び出しを処理します。

    Bb763183.alert_note(ja-jp,VS.90).gifメモ :

    これらの構成設定は、Microsoft Visual Studio 2005 で作成する AJAX 対応の新しい Web サイト用の Web.config ファイル テンプレートに含まれています。

    ハンドラを登録する Web.config 要素の例を次に示します。

    <system.web>
      <httpHandlers>
        <remove verb="*" path="*.asmx"/>
        <add verb="*" path="*.asmx"
          type="System.Web.Script.Services.ScriptHandlerFactory"
           validate="false"/>
      </httpHandlers>
    <system.web>
    

JSON シリアル化の構成

クライアント スクリプトが ASP.NET Web サービスを呼び出すと、JSON 形式でデータが交換されます。JSON シリアル化の設定は、jsonSerialization 要素で構成できます。

JSON シリアル化を構成するには

  1. Web サイトの Web.config ファイルを開きます。

    Bb763183.alert_note(ja-jp,VS.90).gifメモ :

    Microsoft Visual Studio 2005 で Web サービスを作成すると、Web.config ファイルに system.web.extensions セクションが追加されますが、子要素はコメント アウトされています。

  2. webServices 要素に、jsonSerialization 要素を追加します。

    この要素により、カスタムのコンバータを指定して、既定の設定をオーバーライドできます。

  3. 次のシリアル化属性を定義します。すべての属性は省略できます。

    • recursionLimit. 型をシリアル化する最大深度を指定します。既定の再帰限度は 100 です。

    • maxJsonLength. JSON 文字列の最大長 (UTF-8 文字の最大数) を指定します。既定の長さは 102,400 です。

    jsonSerialization 要素を構成する方法を次の例に示します。ここでは、maxJsonLength が 5,000 に設定されています。

    <configuration>
      <system.web.extensions>
        <scripting>
          <webServices>
            <jsonSerialization maxJsonLength="5000"/>
          </webServices>
        </scripting>
      </system.web.extensions>
    </configuration>
    
  4. カスタムのコンバータを使用する場合は、jsonSerialization 要素に converters 要素を追加します。

    この要素では、次の属性を指定する必要があります。

    • name   一意の識別子。

    • type   コンバータの完全修飾型名。

    カスタム コンバータを構成する方法を次の例に示します。

    <configuration>
      <system.web.extensions>
        <scripting>
          <webServices>
            <jsonSerialization maxJsonLength="50"/>
              <converters>
                <add name="MyCustomConverter" 
                  type="MyCompany.ConvertersNameSpace.MyTypeConverter"/>
              </converters>
            </jsonSerialization>
          </webServices>
        </scripting>
      </system.web.extensions>
    </configuration>
    

クライアント スクリプトからの呼び出しを有効にするためのアプリケーション サービスの構成

次の手順では、組み込みのアプリケーション サービスを構成して、ブラウザで実行されている AJAX 対応 Web アプリケーション内のスクリプトから呼び出すことができるようにする方法を示します。

ASP.NET アプリケーション サービスの詳細については、次のトピックを参照してください。

認証サービスを構成するには

  1. Web サイトの Web.config ファイルを開きます。

  2. authentication 要素で、フォーム認証を有効にします。

    フォーム認証を使用するように構成された authentication 要素を次の例に示します。認証されていないユーザーが保護されたリソースにアクセスしようとすると、Web サイトのルートにある Login.aspx ページにリダイレクトされます。

    <system.web>
      <authentication mode="Forms">
        <forms cookieless="UseCookies" 
          loginUrl="~/login.aspx"/>
      </authentication>
    <system.web>
    

    詳細については、「ASP.NET AJAX でのフォーム認証の使用」を参照してください。

  3. system.web.extensions 要素で、認証サービスを有効にします。

    認証サービスを有効にする方法を次の例に示します。

    <system.web.extensions>
      <scripting>
        <webServices>
           <authenticationService enabled="true" />
        </webServices>
      </scripting>
    </system.web.extensions>
    

ロール サービスを構成するには

  1. Web サイトの Web.config ファイルを開きます。

  2. system.web.extensions 要素で、ロール サービスを有効にします。

    ロール サービスを有効にする方法を次の例に示します。

    <system.web.extensions>
      <scripting>
        <webServices>
          <rolesService enabled="true" />
        </webServices>
      </scripting>
    </system.web.extensions>
    

プロファイル サービスを構成するには

  1. Web サイトの Web.config ファイルを開きます。

  2. アプリケーションで公開するプロファイル プロパティをまだ定義していない場合は、これらを定義します。

    プロファイル プロパティは、次の例と同様の構文を使用して、profile セクションで定義します。グループ化されたプロパティの場合は、group 要素を使用します。

    <system.web>
      <profile enabled="true">
        <add name=" Backgroundcolor" type="System.String"
           defaultValue="white" />
        <add name=" Foregroundcolor" type="System.String"
         defaultValue="black" />
        <properties>
          <group name="Address">
           <add name="Street" type="System.String" />
           <add name="City" type="System.String"/>
           <add name="PostalCode" type="System.String" />
          </group>
        </properties>
      </profile>
    </system.web>
    

    詳細については、「ASP.NET プロファイル プロパティの概要」を参照してください。

  3. system.web.extensions 要素で、プロファイル サービスを有効にします。

    プロファイル サービスを有効にする方法を次の例に示します。

    <system.web.extensions>
      <scripting>
        <webServices>
          < profileService enabled="true" />
        </webServices>
      </scripting>
    </system.web.extensions>
    
  4. クライアント アプリケーションで使用できるようにする各プロファイル プロパティについて、そのプロパティ名を profileService 要素の readAccessProperties 属性に追加します。

  5. クライアント スクリプトから更新できるようにする各サーバー プロファイル プロパティについて、そのプロパティ名を writeAccessProperties 属性に追加します。

    個々のプロパティを公開する方法、およびクライアント アプリケーションがそれらのプロパティを読み込むこと、および書き込むことができるようにするかどうか設定する方法を、次の例に示します。

    <profileService enabled="true" 
        readAccessProperties="Backgroundcolor,Foregroundcolor" 
        writeAccessProperties=" Backgroundcolor,Foregroundcolor"/>
    

参照

処理手順

方法 : ASP.NET AJAX で WCF サービスを構成する

概念

ASP.NET 構成の概要

ASP.NET 構成ファイルの階層と継承

ASP.NET 構成ファイルの編集

参照

system.web.extensions 要素 (ASP.NET 設定スキーマ)

System.Web.Configuration

その他の技術情報

ASP.NET 構成設定

ASP.NET 構成 API