WCF y nombres de dominio internacionalizadosWCF and Internationalized Domain Names

Se ha agregado compatibilidad para permitir servicios WCF con nombres de dominio internacionalizados (IDN).Support has been added to allow for WCF services with Internationalized Domain Names (IDN). Un nombre de dominio internacionalizado es un nombre de dominio que contiene caracteres no ASCII.An internationalized domain name is a domain name that contains non-ASCII characters. 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.This support includes both the ability to host a WCF service with an IDN name and a WCF client to talk to a web service with an IDN name.

System.Uri e IDNSystem.Uri and IDN

Uri tiene dos propiedades Host y DnsSafeHost.Uri has two properties Host and DnsSafeHost. Estas propiedades contienen valores Unicode o Punycode dependiendo de las opciones de configuración de IDN.These properties contain Unicode or Punycode values depending upon the IDN configuration settings.

IDN está habilitada en el archivo de configuración de una aplicación mediante el código XML siguienteIDN is enabled in an application’s configuration file using the following XML

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

El <idn > elemento contiene el atributo enabled que se puede establecer en uno de los siguientes valores:The <idn> element contains the enabled attribute which can be set to one of the following values:

  1. "None""None"

  2. "AllExceptIntranet""AllExceptIntranet"

  3. "All""All"

Cuando el valor de IDN se establece en "None", no se realizan conversiones Uri.Host o Uri.DnsSafeHost.When the IDN setting is set to "None", no conversions are performed by Uri.Host or Uri.DnsSafeHost. Cuando el valor de IDN se establece en "All", uri. Host sigue siendo Unicode y uri. DnsSafeHost se convierte en Punycode.When the IDN setting is set to "All", uri.Host remains Unicode and uri.DnsSafeHost is converted to Punycode. Cuando el valor de IDN se establece en "AllExceptIntranet", el uri. DnsSafeHost se convierte en Punycode para las direcciones de internet y sigue siendo Unicode para las direcciones de intranet.When the IDN setting is set to "AllExceptIntranet", uri.DnsSafeHost is converted to Punycode for internet addresses, and remains Unicode for intranet addresses. Este valor es importante para la resolución de nombres DNS correcta.This setting is important for correct DNS name resolution. Observe que no es necesario configurar este valor para Windows 8 y las versiones más recientes.Note this setting is not required to be configured for Windows 8 and newer versions.

Advertencia

Nunca debe codificar una dirección mediante Punycode.You should never hard-code an address using Punycode. WCF lo convertirá automáticamente basándose en las opciones de configuración que se apliquen.WCF will convert it for you based on the configuration settings you apply.

Advertencia

Al agregar caracteres Unicode a applicationHost.exe.config, guarde el archivo con codificación UTF-8.When adding Unicode characters to applicationHost.exe.config, save the file using the UTF-8 encoding.

Vea tambiénSee Also

System.UriSystem.Uri