Compartir a través de


Cómo: Configurar servicios de ASP.NET en ASP.NET AJAX

Actualización: noviembre 2007

En este tema se describe cómo establecer la configuración que permite a las aplicaciones cliente habilitadas para AJAX de ASP.NET llamar a los servicios web ASP.NET (archivos .asmx). En este tema se describen las siguientes tareas:

  • Configurar servicios web para habilitar las llamadas desde script de cliente.

  • Configurar la serialización de JSON.

  • Configurar el servicio de autenticación.

  • Configurar el servicio de función.

  • Configurar el servicio de perfil.

Toda la configuración se realiza en el grupo de configuración system.web.extension. Para obtener más información, vea system.web.extensions (Elemento, Esquema de configuración de ASP.NET).

Configurar servicios web para habilitar las llamadas desde script de cliente

El procedimiento siguiente describe cómo configurar los servicios web ASP.NET para que se les pueda llamar desde script de cliente. Para obtener más información, vea Exponer servicios web a script de cliente.

En las llamadas al servicio web que no se emiten desde clientes habilitados para AJAX de ASP.NET (script), la clase de controlador ScriptHandlerFactory delega la llamada al controlador predeterminado, que usa el formato SOAP en lugar de JSON. Esto se lleva a cabo de forma interna y no es necesario realizar ninguna acción. También puede deshabilitar el protocolo SOAP en los servicios web.

Para deshabilitar el protocolo SOAP en los servicios web

  • En el archivo Web.config del sitio web, borre todos los protocolos para los servicios web, como se muestra en el ejemplo siguiente:

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

Para configurar los servicios web para habilitar las llamadas desde script de cliente

  • En el archivo Web.config del sitio web, registre el controlador HTTP ScriptHandlerFactory.

    Este controlador procesa las llamadas realizadas desde script a los servicios web.

    Nota:

    Esta configuración ya forma parte de la plantilla del archivo Web.config de cualquier sitio web nuevo habilitado para AJAX que cree en Microsoft Visual Studio 2005. 

    En el ejemplo siguiente se muestra el elemento Web.config para registrar el controlador.

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

Configurar la serialización de JSON

Cuando el script de cliente llama a los servicios web ASP.NET, los datos se intercambian en formato JSON. Puede configurar los valores de serialización de JSON a través del elemento jsonSerialization.

Para configurar la serialización de JSON

  1. Abra el archivo Web.config del sitio web.

    Nota:

    Si crea un servicio web en Microsoft Visual Studio 2005, el archivo Web.config contiene la sección system.web.extensions con elementos secundarios marcados como comentario.

  2. En el elemento webServices, agregue el elemento jsonSerialization.

    Este elemento permite especificar convertidores personalizados e invalidar la configuración predeterminada.

  3. Defina los atributos de serialización siguientes. Todos los atributos son opcionales.

    • recursionLimitEspecifica la profundidad máxima a la que se serializan los tipos. El límite de recursividad predeterminado es 100.

    • maxJsonLength Especifica la longitud máxima de la cadena de JSON (el número máximo de caracteres UTF-8). La longitud predeterminada es 102400.

    En el ejemplo siguiente se muestra cómo configurar el elemento jsonSerialization. En el ejemplo, maxJsonLength se establece en 5000.

    <configuration>
      <system.web.extensions>
        <scripting>
          <webServices>
            <jsonSerialization maxJsonLength="5000"/>
          </webServices>
        </scripting>
      </system.web.extensions>
    </configuration>
    
  4. Si desea utilizar un convertidor personalizado, en el elemento jsonSerialization, agregue el elemento converters.

    El elemento requiere los atributos siguientes:

    • name   Identificador único.

    • type   Nombre de tipo completo del convertidor.

    En el ejemplo de código siguiente se muestra cómo configurar un convertidor personalizado.

    <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>
    

Configurar servicios de aplicación para habilitar las llamadas desde script de cliente

Los procedimientos siguientes describen cómo configurar los servicios de aplicación integrados para habilitar las llamadas desde script en aplicaciones web habilitadas para AJAX que se ejecutan en el explorador.

Para obtener más información sobre los servicios de aplicación ASP.NET, vea los siguientes temas:

Para configurar el servicio de autenticación

  1. Abra el archivo Web.config del sitio web.

  2. En el elemento authentication, habilite la autenticación de formularios.

    En el ejemplo siguiente se muestra un elemento authentication configurado para utilizar la autenticación de formularios. Cualquier intento por parte de un usuario no autenticado de obtener acceso a un recurso protegido se redirige a la página Login.aspx en la raíz del sitio web.

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

    Para obtener más información, vea Utilizar la autenticación de formularios con AJAX en ASP.NET.

  3. En el elemento system.web.extensions, habilite el servicio de autenticación.

    En el ejemplo siguiente se muestra cómo habilitar el servicio de autenticación.

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

Para configurar el servicio de función

  1. Abra el archivo Web.config del sitio web.

  2. En el elemento system.web.extensions, habilite el servicio de función.

    En el ejemplo siguiente se muestra cómo habilitar el servicio de función.

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

Para configurar el servicio de perfil

  1. Abra el archivo Web.config del sitio web.

  2. Si aún no están definidas, defina las propiedades de perfil que desea exponer en la aplicación.

    Las propiedades de perfil se definen en la sección profile con una sintaxis similar a la del ejemplo siguiente. Para las propiedades agrupadas, utilice el elemento 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>
    

    Para obtener más información, vea Información general sobre las propiedades de perfil de ASP.NET.

  3. En el elemento system.web.extensions, habilite el servicio de perfil.

    En el ejemplo siguiente se muestra cómo habilitar el servicio de perfil.

    <system.web.extensions>
      <scripting>
        <webServices>
          < profileService enabled="true" />
        </webServices>
      </scripting>
    </system.web.extensions>
    
  4. Para cada propiedad de perfil que desea dejar disponible en una aplicación cliente, agregue el nombre de la propiedad al atributo readAccessProperties del elemento profileService.

  5. Para cada propiedad de perfil de servidor que se pueda actualizar desde script de cliente, agregue el nombre de la propiedad al atributo writeAccessProperties.

    El ejemplo siguiente muestra cómo exponer propiedades individuales y establecer si una aplicación cliente puede leerlas y escribirlas.

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

Vea también

Tareas

Cómo: Configurar servicios de WCF en ASP.NET AJAX

Conceptos

Información general sobre la configuración de ASP.NET

Jerarquía de archivos y herencia de la configuración de ASP.NET

Editar los archivos de configuración de ASP.NET

Referencia

system.web.extensions (Elemento, Esquema de configuración de ASP.NET)

System.Web.Configuration

Otros recursos

Opciones de configuración de ASP.NET

API de configuración de ASP.NET