Compartir a través de


Opciones de configuración de servicios Web XML creados mediante ASP.NET

La configuración de los servicios Web XML sigue el mismo paradigma que utilizan todas las aplicaciones Web de ASP.NET. La configuración de ASP.NET se basa en una arquitectura eficaz y extensible de configuración de archivos de texto basados en XML. Un archivo de configuración simplemente es un conjunto de elementos XML que representan las opciones de configuración de una característica técnica determinada de Microsoft .NET Framework. En el caso de los servicios Web XML, las opciones de configuración se encapsulan en el elemento XML webServices de un archivo de configuración. Para obtener más información acerca de la arquitectura de configuración de ASP.NET, vea Configuración de ASP.NET. Para obtener una lista completa de las opciones de configuración disponibles para los servicios Web XML, vea Elemento <webServices>.

Configurar los protocolos de mensajería y la página de ayuda del servicio

Los protocolos de mensajería y la página de ayuda para los servicios Web XML se configuran en el elemento XML <protocols> que aparece debajo del elemento <webServices> en los archivos de configuración. Para la configuración se agregan elementos <add> y <remove> para cada valor y se especifica si la opción está disponible en el ámbito del archivo de configuración. El elemento <add> agrega explícitamente la compatibilidad para ese valor en el ámbito del archivo de configuración, mientras que el elemento <remove> quita la compatibilidad agregada en el nivel superior de la jerarquía de configuración. Por ejemplo, se puede agregar una configuración de protocolo en el nivel de equipo con un elemento <add> en el archivo Machine.config y, a continuación, quitarlo para una aplicación Web con un elemento <remove> en el archivo Web.config. La sintaxis de los elementos <add> y <remove> es la siguiente:

<{add|remove} name="protocol name" />

El atributo de nombre de los elementos <add> y <remove> tiene las opciones siguientes:

Opción Descripción
HttpSoap Controla la compatibilidad de SOAP sobre el protocolo HTTP con los servicios Web XML. De forma predeterminada, la instalación agrega compatibilidad.
HttpGet Controla la compatibilidad del protocolo HTTP-GET con los servicios Web XML. De forma predeterminada, la instalción no agrega compatibilidad.
HttpPost Controla la compatibilidad del protocolo HTTP-POST con los servicios Web XML, independientemente del origen de la solicitud. De forma predeterminada, la instalción no agrega compatibilidad.
HttpPostLocalhost Controla la compatibilidad del protocolo HTTP-POST con los servicios Web XML, cuando la solicitud se origina en el equipo local. Si se agrega HttpPost a la configuración actual, esta opción no tiene ningún efecto. De forma predeterminada, la instalación agrega compatibilidad.
Documentation Especifica si se muestra la página de ayuda de un servicio cuando el usuario llega hasta la dirección URL de un servicio Web XML sin ningún parámetro en el explorador. De forma predeterminada, la instalación agrega compatibilidad.

**Nota   .**NET Framework versión 1.0 es compatible con las opciones HttpSoap, HttpGet, HttpPost y Documentation que, de forma predeterminada, están habilitadas en el nivel de equipo.

Recomendación de seguridad

Antes de habilitar los protocolos HTTP-GET o HTTP-POST para un servicio Web XML, conviene tener en cuenta que se expone a una invocación involuntaria. Por ejemplo, un usuario confiado puede recibir un mensaje de correo electrónico con un vínculo que cuando hace clic en él llame al servicio Web XML en nombre del usuario con los parámetros proporcionados en el correo electrónico. Por tanto, antes de habilitar los protocolos HTTP-GET o HTTP-POST hay que tener en cuenta si las invocaciones de este tipo pueden ser peligrosas.

Para deshabilitar los protocolos HTTP-GET y HTTP-POST en todo el equipo

  1. Abra el archivo Machine.config con el editor de texto que prefiera. (La instalación predeterminada coloca el archivo Machine.config en el subdirectorio \Config de la raíz de la instalación.)

  2. Incluya las líneas que agregan compatibilidad con HTTP-GET y HTTP-POST en la sección webServices, si las hay. Una vez incluidas, la sección webServices puede ser similar a la siguiente:

    <webServices>
        <protocols>
          <add name="HttpSoap"/> 
             <!-- <add name="HttpPost"/> -->          <!-- <add name="HttpGet"/>  -->
          <add name="Documentation"/>
          <add name="HttpPostLocalhost"/>
        </protocols>
    </webServices>
    
  3. Guarde el archivo Machine.config.

    Esta configuración surtirá efecto con la siguiente solicitud enviada a un servicio Web XML albergado en el equipo.

Para deshabilitar la compatibilidad con un protocolo en una aplicación Web individual

  1. Abra el archivo Web.config en el directorio raíz de la aplicación Web con su editor favorito. (Si el archivo Web.config no existe, deberá crearlo.)

  2. Modifique la sección webServices del archivo Web.config para quitar explícitamente la opción del protocolo. En el siguiente ejemplo se quitan explícitamente los protocolos HTTP-POST y HTTP-GET:

    <webServices>
         <protocols>
           <remove name="HttpPost" />
           <remove name="HttpGet" />
         </protocols>
    </webServices>
    
  3. Guarde el archivo Web.config.

    La configuración surtirá efecto con la siguiente solicitud enviada para un servicio Web XML alojado en la aplicación Web.

Página de ayuda del servicio

Mediante un explorador, los clientes pueden llegar hasta la dirección URL del servicio Web XML sin ningún parámetro para ver la página de ayuda del servicio Web XML, si el servicio está configurado para ello. De forma predeterminada, la página de ayuda del servicio contiene información comprensible para el usuario sobre cómo comunicarse con el servicio Web XML y los métodos de servicio Web XML que expone. Como la página de ayuda del servicio sólo es un formulario Web Form de ASP.NET, se puede reemplazar o modificar para incluir elementos como el logotipo de una compañía. El nombre de archivo de la página de ayuda del servicio se especifica en el elemento XML <wsdlHelpGenerator> de un archivo de configuración con el valor predeterminado DefaultWsdlHelpGenerator.aspx especificado en el archivo Machine.config. La página de ayuda del servicio sólo se muestra para los servicios Web XML en el ámbito de un archivo de configuración que tenga especificado el protocolo Documentation en el elemento XML <protocols>. De forma predeterminada, el protocolo Documentation se especifica en el archivo Machine.config.

Para deshabilitar la página de ayuda del servicio en una aplicación Web individual

  1. Abra el archivo Web.config en el directorio raíz de la aplicación Web con su editor favorito. (Si el archivo Web.config no existe, deberá crearlo.)

  2. Modifique la sección webServices del archivo Web.config para quitar explícitamente el protocolo Documentation.

    <webServices>
         <protocols>
           <remove name="Documentation" />
         </protocols>
    </webServices>
    
  3. Guarde el archivo Web.config.

    La configuración surtirá efecto con la siguiente solicitud enviada para un servicio Web XML alojado en la aplicación Web.

    Nota   Al quitar el protocolo Documentation también se deshabilita la generación de archivos WSDL para todos los servicios Web XML dentro de la aplicación Web. Esto impide que los clientes generen una clase de proxy, salvo que se cree y se incluya un archivo WSDL personalizado para ellos. Para dejar la generación de archivos WSDL activada para los servicios Web XML de una aplicación sin proporcionar ninguna información comprensible para el usuario sobre los servicios, puede agregar un elemento <wsdlHelpGenerator> al archivo Web.config de la aplicación y establecer el atributo href a una página HTML en blanco. El siguiente ejemplo de código contiene un extracto de un archivo Web.config que establece la página de ayuda del servicio en un archivo MyBlank.htm de la carpeta docs que se encuentra debajo de la carpeta que contiene el archivo Web.config.

    <webServices>
       <wsdlHelpGenerator href="docs/MyBlank.htm"/>
    </webServices>
    

Vea también

Implementar servicios Web XML | Habilitar el descubrimiento para un servicio Web XML | Generar servicios Web XML mediante ASP.NET