Compartir a través de


Cómo: Habilitar la detección de servicios web XML

Los servicios web se pueden publicar a los clientes potenciales de las maneras siguientes:

  • Usando un archivo de descubrimiento XML con una extensión de nombre de archivo .disco.

  • Usando una dirección URL que especifica una extensión .vsdisco.

  • Usando un servicio web con una cadena de consulta ?DISCO.

En este tema se muestra cómo configurar los dos primeros mecanismos de detección. En este tema no se muestra cómo habilitar solicitudes para un servicio web con una cadena de consulta ?DISCO, porque este método ya está disponible automáticamente. Para obtener una explicación de estas operaciones, consulte Publicar e implementar servicios web XML.

Para publicar un documento de descubrimiento estático para un servicio web

  1. Cree un documento XML con su editor favorito, agregando el elemento ?xml version="1.0" ? en la primera línea.

  2. En el documento XML agregue un elemento discovery, como

    <disco:discovery xmlns:disco="https://schemas.xmlsoap.org/disco/">
    </disco:discovery>
    
  3. En el elemento discovery, agregue referencias a descripciones de servicios, esquemas XSD y otros documentos de descubrimiento.

    Puede agregar tantas referencias como desee exponer públicamente. Las referencias de descripción de servicio se especifican en un documento de descubrimiento agregando un elemento contractRef con el espacio de nombres XML https://schemas.xmlsoap.org/disco/scl/. Igualmente, las referencias a otros documentos de descubrimiento y esquemas XSD se especifican agregando discoveryRef y elementos XML schemaRef, respectivamente. Para obtener referencias de esquemas XSD, se debe especificar el https://schemas.xmlsoap.org/disco/schema del espacio de nombres XML. Para los tres tipos de documentos de referencia, especifique la ubicación del documento con el atributo ref. El ejemplo de código siguiente tiene referencias a un documento de descubrimiento, una descripción de servicio y un esquema XSD.

    <?xml version="1.0"?>
    <discovery xmlns="https://schemas.xmlsoap.org/disco/">
    <discoveryRef ref="/Folder/Default.disco"/>
    <contractRef ref="http://MyWebServer/UserName.asmx?WSDL"
                 docRef="Service.htm"
                 xmlns="https://schemas.xmlsoap.org/disco/scl/"/>
    <schemaRef ref="Schema.xsd"
               xmlns="https://schemas.xmlsoap.org/disco/schema/"/>
    </discovery>
    

    Las referencias pueden ser relativas al directorio donde reside el documento de descubrimiento, como se muestra en el elemento discoveryRef o a un URI, como se muestra en el elemento contractRef.

  4. Implemente el documento de descubrimiento en un servidor web copiándolo en un directorio virtual del mismo.

  5. Opcionalmente, si desea permitir a los posibles usuarios navegar a una dirección URL especificando una aplicación IIS sin tener que especificar un documento, puede agregar un vínculo a la página predeterminada de la aplicación IIS. Esto tiene la ventaja de que los posibles usuarios no tienen que saber el nombre de ningún documento de descubrimiento. Los usuarios pueden proporcionar a continuación direcciones URL como la siguiente durante el proceso de descubrimiento:

    http://MyWebServer/MyWebApplication
    

    Si la página predeterminada de la aplicación web es una documento XML, agregue un vínculo al documento de descubrimiento en el elemento head de la página web predeterminada para el servidor web. Por ejemplo, si denomina MyWebService.disco al documento de descubrimiento y lo coloca en el mismo directorio que la página predeterminada, tiene que colocar el siguiente elemento en la página web predeterminada:

    <HEAD>
    <link type='text/xml' rel='alternate' href='MyWebService.disco'/>
    </HEAD>
    

    Si la página predeterminada de la aplicación web es una página HTML, agregue un vínculo al documento de descubrimiento en el elemento de head de la página web predeterminada para el servidor web. Por ejemplo, si denomina MyWebService.disco al documento de descubrimiento y lo coloca en el mismo directorio que la página predeterminada, tiene que colocar lo siguiente en la parte superior de la página predeterminada:

    <?xml-stylesheet type="text/xml" alternate="yes" href="MyWebService.disco" ?>
    

Para habilitar el descubrimiento dinámico para un servicio web

  • Para activar la detección dinámica en un servidor web, modifique el archivo machine.config agregando el siguiente elemento <add>. Omita los saltos de línea en el ejemplo siguiente cuando el atributo type deba estar en una línea.

    <configuration>
      <system.web>
         <httpHandlers>
           <add verb="*" path="*.vsdisco"
               type="System.Web.Services.Discovery.DiscoveryRequestHandler,
                     System.Web.Services, Version=1.0.3300.0,
                     Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
               validate="false"/>
         </httpHandlers>
       </system.web>
    </configuration>
    
    Nota:

    Cuando se activa el descubrimiento dinámico, todos los servicios web y documentos de descubrimiento existentes en el servidor web bajo la dirección URL solicitada son reconocibles. Por consiguiente, se debe tener cuidado al activar el descubrimiento dinámico, ya que podría exponer datos confidenciales si el servidor web no está en una red que use un firewall y otras características de seguridad.

Consulte también

Conceptos

Publicar e implementar servicios web XML
Configuración de opciones para los servicios web XML creados con ASP.NET

Otros recursos

Servicios web XML con ASP.NET

Copyright © 2007 Microsoft Corporation. Reservados todos los derechos.