Soportar múltiples enlaces de sitios de IISSupporting Multiple IIS Site Bindings

Al hospedar un servicio de Windows Communication Foundation (WCF) en Internet Information Services (IIS) 7.0, puede proporcionar varias direcciones base que usan el mismo protocolo en el mismo sitio.When hosting a Windows Communication Foundation (WCF) service under Internet Information Services (IIS) 7.0, you may want to provide multiple base addresses that use the same protocol on the same site. Esto permite que el mismo servicio responda a varios URI diferentes.This allows the same service to respond to a number of different URIs. Esto es útil cuando desee hospedar un servicio que escucha en http://www.contoso.com y http://contoso.com.This is useful when you want to host a service that listens on http://www.contoso.com and http://contoso.com. También es útil crear un servicio que tenga una dirección base para los usuarios internos y una dirección base independiente para los usuarios externos.It is also useful to create a service that has a base address for internal users and a separate base address for external users. Por ejemplo: http://internal.contoso.com y http://www.contoso.com.For example: http://internal.contoso.com and http://www.contoso.com.

Nota

Esta funcionalidad solo está disponible mediante el protocolo HTTP.This functionality is only available using the HTTP protocol.

Múltiples direcciones baseMultiple Base Addresses

Esta característica solo está disponible para los servicios WCF que se hospedan en IIS.This feature is only available to WCF services that are hosted under IIS. Esta característica no está habilitada de manera predeterminada.This feature is not enabled by default. Para habilitarla, debe agregar el multipleSiteBindingsEnabled atributo a la <serviceHostingEnvironment> elemento en el archivo Web.config de archivos y establézcalo en true, como se muestra en el ejemplo siguiente.To enable it you must add the multipleSiteBindingsEnabled attribute to the <serviceHostingEnvironment> element in your Web.config file and set it to true, as shown in the following example.

<serviceHostingEnvironment multipleSiteBindingsEnabled="true"/>  

Al hospedar un servicio WCF en IIS, IIS crea automáticamente una dirección base según el URI en el directorio virtual que contiene la aplicación.When hosting a WCF service under IIS, IIS creates one base address for you based on the URI to the virtual directory that contains the application. Puede agregar direcciones base adicionales que usen el mismo protocolo mediante el Administrador de Internet Information Services para agregar uno o más enlaces al sitio web.You can add additional base addresses that use the same protocol by using Internet Information Services Manager to add one or more bindings to your Web site. Para cada enlace especifique un protocolo (HTTP o HTTPS), una dirección IP, un puerto y un nombre de host.For each binding specify a protocol (HTTP or HTTPS), an IP address, a port, and a host name. Para obtener más información sobre cómo usar el Administrador de Internet Information Services, consulte el Administrador de IIS (IIS 7).For more information about using Internet Information Services Manager, see IIS Manager (IIS 7). Para obtener más información sobre cómo agregar enlaces a un sitio, consulte crear un sitio Web (IIS 7)For more information about adding bindings to a site, see Create a Web Site (IIS 7)

Especificar varias direcciones base para el mismo sitio afecta al contenido de la página de Ayuda de WCF, importación de esquema y la información de WSDL/MEX generada por el servicio.Specifying multiple base addresses for the same site affects the content of the WCF Help page, importing schema, and the WSDL/MEX information generated by the service. La página de Ayuda de WCF muestra la línea de comandos utilizada para generar a un cliente WCF que puede comunicarse con el servicio.The WCF Help page displays the command line to use to generate a WCF client that can communicate with the service. Esta línea de comandos contiene solo la primera dirección especificada en el enlace de IIS del sitio web.This command line contains only the first address specified in the IIS binding for the Web site. De igual forma, al importar el esquema, se usa solo la primera dirección base especificada en el enlace de IIS.Similarly when importing schema, only the first base address specified in the IIS binding is used. Los datos de WSDL y MEX contienen todas las direcciones base especificadas en los enlaces de IIS.WSDL and MEX data contain all the base addresses specified in the IIS bindings.

Advertencia

Esto significa que, si un servicio tiene dos direcciones base, una para los usuarios internos y una para los usuarios externos, ambas se especifican en la información de WSDL/MEX generada por el servicio.This means that if a service has two base addresses, one for internal users and one for external users, both are specified in the WSDL/MEX information generated by the service.