Architektura WCF i międzynarodowe nazwy domen
Dodano obsługę zezwalania na usługi WCF z nazwami domen międzynarodowych (IDN). Nazwa domeny międzynarodowej to nazwa domeny, która zawiera znaki inne niż ASCII. Ta obsługa obejmuje zarówno możliwość hostowania usługi WCF z nazwą IDN, jak i klientem WCF do komunikacji z usługą internetową o nazwie IDN.
System.Uri i IDN
Uri ma dwie właściwości Host i DnsSafeHost. Te właściwości zawierają wartości Unicode lub Punycode w zależności od ustawień konfiguracji sieci IDN.
Nazwa IDN jest włączona w pliku konfiguracji aplikacji przy użyciu następującego kodu XML
<configuration>
<uri>
<idn enabled="All/AllExceptIntranet/None" />
</uri>
</configuration>
Element <idn> zawiera włączony atrybut, który można ustawić na jedną z następujących wartości:
"Brak"
"AllExceptIntranet"
„All”
Gdy ustawienie IDN jest ustawione na wartość "Brak", żadne konwersje nie są wykonywane przez Uri.Host lub Uri.Dns Sejf Host. Gdy ustawienie IDN jest ustawione na "Wszystkie", identyfikator URI. Host pozostaje unicode i identyfikator URI. Dns Sejf Host jest konwertowany na punycode. Gdy ustawienie IDN jest ustawione na "AllExceptIntranet", identyfikator URI. Dns Sejf Host jest konwertowany na punycode dla adresów internetowych i pozostaje Unicode dla adresów intranetowych. To ustawienie jest ważne dla poprawnego rozpoznawania nazw DNS. Należy pamiętać, że to ustawienie nie jest wymagane do skonfigurowania dla systemu Windows 8 i nowszych wersji.
Ostrzeżenie
Nigdy nie należy kodować adresu przy użyciu narzędzia Punycode. Program WCF przekonwertuje go na podstawie stosowanych ustawień konfiguracji.
Ostrzeżenie
Podczas dodawania znaków Unicode do pliku applicationHost.exe.config zapisz plik przy użyciu kodowania UTF-8.