WCF und internationale DomänennamenWCF and Internationalized Domain Names

Unterstützung für WCF-Dienste mit internationalisierten Domänennamen (Internationalized Domain Names, IDNs) wurde hinzugefügt.Support has been added to allow for WCF services with Internationalized Domain Names (IDN). Ein internationalisierter Domänenname ist ein Domänenname, der Nicht-ASCII-Zeichen enthält.An internationalized domain name is a domain name that contains non-ASCII characters. Diese Unterstützung umfasst die Fähigkeit zum Hosten eines WCF-Diensts mit einem IDN und zum Kommunizieren eines WCF-Clients mit einem Webdienst, der über einen IDN verfügt.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 und IDNSystem.Uri and IDN

Uri verfügt über die beiden Eigenschaften Host und DnsSafeHost.Uri has two properties Host and DnsSafeHost. Diese Eigenschaften enthalten abhängig von den IDN-Konfigurationseinstellungen Unicode- oder Punycode-Werte.These properties contain Unicode or Punycode values depending upon the IDN configuration settings.

IDN wird in der Konfigurationsdatei einer Anwendung mit dem folgenden XML-Code aktiviert:IDN is enabled in an application’s configuration file using the following XML

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

Die <Idn >-Element enthält das aktivierte Attribut, das auf einen der folgenden Werte festgelegt werden kann:The <idn> element contains the enabled attribute which can be set to one of the following values:

  1. "None""None"

  2. "AllExceptIntranet""AllExceptIntranet"

  3. "Alle""All"

Wenn die IDN-Einstellung auf "None" festgelegt ist, werden keine Konvertierungen von Uri.Host oder Uri.DnsSafeHost ausgeführt.When the IDN setting is set to "None", no conversions are performed by Uri.Host or Uri.DnsSafeHost. Wenn die IDN-Einstellung auf "Alle", Uri festgelegt wird. Host bleibt Unicode- und Uri. DnsSafeHost werden in Punycode konvertiert.When the IDN setting is set to "All", uri.Host remains Unicode and uri.DnsSafeHost is converted to Punycode. Wenn die IDN-Einstellung auf "AllExceptIntranet", Uri festgelegt ist. DnsSafeHost für Internetadressen in Punycode konvertiert, und Unicode für Intranetadressen verbleiben.When the IDN setting is set to "AllExceptIntranet", uri.DnsSafeHost is converted to Punycode for internet addresses, and remains Unicode for intranet addresses. Diese Einstellung ist für eine ordnungsgemäße DNS-Namensauflösung wichtig.This setting is important for correct DNS name resolution. Beachten Sie, dass diese Einstellung für Windows 8 und spätere Versionen nicht konfiguriert werden muss.Note this setting is not required to be configured for Windows 8 and newer versions.

Warnung

Sie sollten eine Adresse nie mit Punycode hartcodieren.You should never hard-code an address using Punycode. WCF konvertiert sie auf Grundlage der verwendeten Konfigurationseinstellungen.WCF will convert it for you based on the configuration settings you apply.

Warnung

Wenn Sie applicationHost.exe.config Unicode-Zeichen hinzufügen, speichern Sie die Datei mit UTF-8-Codierung.When adding Unicode characters to applicationHost.exe.config, save the file using the UTF-8 encoding.

Siehe auchSee Also

System.UriSystem.Uri