Dela via


WCF och internationaliserade domännamn

Stöd har lagts till för att tillåta WCF-tjänster med internationaliserade domännamn (IDN). Ett internationaliserat domännamn är ett domännamn som innehåller icke-ASCII-tecken. Det här stödet omfattar både möjligheten att vara värd för en WCF-tjänst med ett IDN-namn och en WCF-klient för att kommunicera med en webbtjänst med ett IDN-namn.

System.Uri och IDN

Uri har två egenskaper Host och DnsSafeHost. De här egenskaperna innehåller Unicode- eller Punycode-värden beroende på IDN-konfigurationsinställningarna.

IDN är aktiverat i ett programs konfigurationsfil med hjälp av följande XML

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

Idn-elementet <> innehåller det aktiverade attributet som kan anges till något av följande värden:

  1. "Ingen"

  2. "AllExceptIntranet"

  3. "Alla"

När IDN-inställningen är inställd på "Ingen" utförs inga konverteringar av Uri.Host eller Uri.DnsSafeHost. När IDN-inställningen är inställd på "Alla" förblir uri.Host Unicode, och uri.DnsSafeHost konverteras till Punycode. När IDN-inställningen är inställd på "AllExceptIntranet", uri. DnsSafeHost konverteras till Punycode för internetadresser och förblir Unicode för intranätadresser. Den här inställningen är viktig för korrekt DNS-namnmatchning. Observera att den här inställningen inte krävs för att konfigureras för Windows 8- och senare versioner.

Varning

Du bör aldrig hårdkoda en adress med punycode. WCF konverterar det åt dig baserat på de konfigurationsinställningar som du tillämpar.

Varning

När du lägger till Unicode-tecken i applicationHost.exe.configsparar du filen med UTF-8-kodningen.

Se även