WCF y nombres de dominio internacionalizados
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 no ASCII. Esta compatibilidad incluye tanto la capacidad para hospedar un servicio de WCF con un nombre IDN y un cliente de 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 dependiendo de las opciones de configuración de IDN.
IDN está habilitada en el archivo de configuración de una aplicación mediante el código XML siguiente
<configuration>
<uri>
<idn enabled="All/AllExceptIntranet/None" />
</uri>
</configuration>
El elemento <idn> contiene el atributo enabled que se puede establecer en uno de los siguientes valores:
"None"
"AllExceptIntranet"
"All"
Cuando el valor de IDN se establece en “None”, Uri.Host o Uri.DnsSafeHost no realiza ninguna conversión. Cuando el valor 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 la intranet. Este valor es importante para la resolución de nombres DNS correcta. Observe que no es necesario configurar este valor para Windows 8 y las versiones más recientes.
Advertencia
Nunca debe codificar una dirección mediante Punycode. WCF lo convertirá automáticamente basándose en las opciones de configuración que se apliquen.
Advertencia
Al agregar caracteres Unicode a applicationHost.exe.config, guarde el archivo con codificación UTF-8.