WCF e Nomes de Domínio Internacionalizados
O suporte foi adicionado para permitir serviços WCF com nomes de domínio internacionalizados (IDN). Um nome de domínio internacionalizado é um nome de domínio que contém caracteres não-ASCII. Esse suporte inclui a capacidade de hospedar um serviço WCF com um nome IDN e um cliente WCF para falar com um serviço Web com um nome IDN.
System.Uri e IDN
Uri tem duas propriedades Host e DnsSafeHost. Essas propriedades contêm valores Unicode ou Punycode, dependendo das definições de configuração do IDN.
O IDN é habilitado no arquivo de configuração de um aplicativo usando o seguinte XML:
<configuration>
<uri>
<idn enabled="All/AllExceptIntranet/None" />
</uri>
</configuration>
O <elemento idn> contém o atributo enabled que pode ser definido como um dos seguintes valores:
"Nenhuma"
"AllExceptIntranet"
"Todas"
Quando a configuração IDN é definida como "Nenhum", nenhuma conversão é executada por Uri.Host ou Uri.DnsSafeHost. Quando a configuração IDN é definida como "Todos", uri. O host permanece Unicode e uri. DnsSafeHost é convertido em Punycode. Quando a configuração IDN é definida como "AllExceptIntranet", uri. DnsSafeHost é convertido em Punycode para endereços de internet e permanece Unicode para endereços de intranet. Essa configuração é importante para a resolução correta de nomes DNS. Observe que essa configuração não precisa ser configurada para o Windows 8 e versões mais recentes.
Aviso
Você nunca deve codificar um endereço usando Punycode. O WCF irá convertê-lo para você com base nas definições de configuração que você aplicar.
Aviso
Ao adicionar caracteres Unicode ao applicationHost.exe.config, salve o arquivo usando a codificação UTF-8.