WCF e nomes de domínio internacionalizados
O suporte foi adicionado para permitir os serviços WCF com IDN (nomes de domínio internacionalizados). 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 se comunicar 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 de IDN.
O IDN é habilitado no arquivo de configuração de um aplicativo por meio do XML a seguir
<configuration>
<uri>
<idn enabled="All/AllExceptIntranet/None" />
</uri>
</configuration>
O elemento <idn> contém o atributo habilitado que pode ser definido como um dos seguintes valores:
"None"
"AllExceptIntranet"
"All"
Quando a configuração de IDN é definida como "Nenhum", nenhuma conversão é executada por Uri.Host ou Uri.DnsSafeHost. Quando a configuração de IDN é definida como "Todos", o uri.Host permanece Unicode e o uri.DnsSafeHost é convertido em Punycode. Quando a configuração de IDN é definida como "AllExceptIntranet", o uri.DnsSafeHost é convertido em Punycode para os endereços da Internet e permanece Unicode para os endereços da intranet. Essa configuração é importante para a resolução correta de nomes DNS. Observe que essa configuração não precisa ser definida no Windows 8 e nas versões mais recentes.
Aviso
Você nunca deve embutir um endereço em código usando o Punycode. O WCF o converterá para você com base nas configurações aplicadas.
Aviso
Ao adicionar caracteres Unicode a applicationHost.exe.config, salve o arquivo usando a codificação UTF-8.