Compartir a través de


Nombres de dominio internacionalizados e WCF

Se ha agregado compatibilidad para permitir servicios WCF con nombres de dominio internacionalizados (IDN). Un nombre de dominio internacionalizado es un nombre de dominio que contiene caracteres que no son ASCII. Esta compatibilidad incluye la capacidad de hospedar un servicio WCF con un nombre de IDN y un cliente WCF para comunicarse con un servicio web con un nombre IDN.

System.Uri e IDN

Uri tiene dos propiedades Host y DnsSafeHost. Estas propiedades contienen valores Unicode o Punycode en función de los valores de configuración de IDN.

IDN está habilitado en el archivo de configuración de una aplicación mediante el siguiente XML

<configuration>  
  <uri>  
    <idn enabled="All/AllExceptIntranet/None" />  
  </uri>  
</configuration>  

El <elemento idn> contiene el atributo habilitado que se puede establecer en uno de los siguientes valores:

  1. "Ninguno"

  2. "AllExceptIntranet"

  3. "Todo"

Cuando la configuración de IDN se establece en "None", Uri.Host o Uri.DnsSafeHost no realizan ninguna conversión. Cuando la configuración de IDN se establece en "All", uri.Host sigue siendo Unicode y uri.DnsSafeHost se convierte en Punycode. Cuando el valor de IDN se establece en "AllExceptIntranet", uri. DnsSafeHost se convierte en Punycode para las direcciones de Internet y sigue siendo Unicode para las direcciones de intranet. Esta configuración es importante para la resolución correcta de nombres DNS. Tenga en cuenta que esta configuración no es necesaria para configurarse para Windows 8 y versiones más recientes.

Advertencia

Nunca debe codificar de forma rígida una dirección mediante Punycode. WCF lo convertirá automáticamente en función de las opciones de configuración que aplique.

Advertencia

Al agregar caracteres Unicode a applicationHost.exe.config, guarde el archivo mediante la codificación UTF-8.

Consulte también