HostNameComparisonMode Enumeration

Definition

Gibt an, wie der Hostname in URI-Vergleichen beim Verteilen einer eingehenden Nachricht an einen Dienstendpunkt verwendet werden soll.

public enum class HostNameComparisonMode
public enum HostNameComparisonMode
type HostNameComparisonMode = 
Public Enum HostNameComparisonMode
Vererbung
HostNameComparisonMode

Felder

Exact 1

Verwendet den Hostnamen beim Verteilen eingehender Nachrichten an diesen Endpunkt, wenn keine hohe Übereinstimmung gefunden wurde.

StrongWildcard 0

Ignoriert den Hostnamen beim Verteilen eingehender Nachrichten an diesen Endpunkt. Dies ist der Standardwert.

WeakWildcard 2

Wenn keine hohe oder exakte Übereinstimmung gefunden wurde, wird der Hostname beim Abgleichen ignoriert.

Beispiele

Im folgenden Beispiel wird gezeigt, wie Sie den StrongWildcard-Wert in einer Dienstseitigen Konfigurationsdatei festlegen.

Dies ist hier ein grundlegender Dienst und Client, die die vorangehende Konfigurationsdatei verwenden.

[ServiceContract()]
public interface ISayHello
{
    [OperationContract()]
    string SayHello();
}

public class HelloService : ISayHello
{
    public string SayHello()
    {
        return "Hello, WCF!";
    }
}
// Open up a channel factory on a client application.
ChannelFactory<ISayHello> factory = new ChannelFactory<ISayHello>("BasicHttpBinding_ISayHello");

// Both of these contracts work (provided both hostnames are valid) because
// the binding configuration is set to hostNameComparisonMode="StrongWildcard".

ISayHello channel = factory.CreateChannel(new EndpointAddress("http://localhost:8000/UESamples/HelloService"));
ISayHello channel2 = factory.CreateChannel(new EndpointAddress("http://machineName/UESamples/HelloService"));

Console.WriteLine(channel.SayHello());

Console.WriteLine();
Console.WriteLine("Press <ENTER> to terminate client.");
Console.ReadLine();

Hinweise

Mit dem Wert werden die URI-Übereinstimmungsregeln angegeben, die von Transportprotokollen wie HTTP, Net.Tcp und Net.Pipe beim Verteilen von eingehenden Nachrichten verwendeten werden. Konfigurieren Sie den Wert von HostNameComparisonMode für eine Standardbindung, die eines der vorangehenden Transportprotokolle verwendet, wie z. B. BasicHttpBinding, mithilfe der entsprechenden HostNameComparisonMode-Eigenschaft. Konfigurieren Sie den Wert von HostNameComparisonMode für ein Bindungselement, das eines der vorangehenden Transportprotokolle verwendet, wie z. B. HttpTransportBindingElement, mithilfe der entsprechenden HostNameComparisonMode-Eigenschaft.

Jeder Wert von HostNameComparisonMode entspricht einem bestimmten Typ der Übereinstimmungsregel. Die Abfolge von Übereinstimmungsregeln, die getestet werden, ist immer wie folgt:

  1. Strongwildcard

  2. Exact

  3. SchwachWildcard

Der erste Wert, StrongWildcard, ignoriert den Hostnamen beim Übereinstimmen, und es nimmt die höchste Priorität der drei verschiedenen Übereinstimmungsmodi. Es ist der Standardwert für ein vom WCF-System bereitgestelltes Bindungs- oder Bindungselement. Dadurch wird angegeben, dass ein Dienstendpunkt mit jedem gültigen Hostnamen erreicht werden kann. Wenn MyService z. B. mithilfe http://localhost/MyService``http://www.adatum.com/MyService von MyService gehostet wird, ist es weiterhin erreichbar, da der (wahrscheinlich gültige) Hostname, "adatum.com", ignoriert wird. Beachten Sie, dass der Port auch hier ein Platzhalter ist.

Der zweite Wert , Exact, erfordert, dass eine genaue Übereinstimmung mit dem angegebenen URI gefunden wird, einschließlich des Hostnamens, wenn keine starke Übereinstimmung gefunden wird. Dieser Modus prüft z. B. nicht die Übereinstimmung von kurzen Hostnamen mit vollqualifizierten Domänennamen. Auf diese Weise können Hostnamen als Suchkriterien in den Szenarien verwendet werden, in denen mehreren Hosts eine einzige IP-Adresse zugewiesen ist. Außerdem können verschiedene Dienste auf dem gleichem Computer mit unterschiedlichen Endpunkten gehostet werden. Beachten Sie, dass der Port auch hier ein Platzhalter ist.

Der dritte Wert, WeakWildcard, entspricht dem Ignorieren des Hostnamens, wenn keine starke oder genaue Übereinstimmung gefunden wurde. Das Verhalten ist identisch mit der anderen Reihenfolge des Übereinstimmens von StrongWildcard: Es wird ausgeführt, nachdem die starken und genauen Bindungen versucht wurden.

Hinweis

Diese Werte haben keine Auswirkungen, wenn sie innerhalb der Internet Information Services (IIS)- oder Windows Process Activation Service (WAS)-Hostingumgebung verwendet werden. In diesen Fällen verwendet WCF jeden Hostnamenvergleichsmodus, der von der IIS-Website bereitgestellt wird, die die WCF-Dienste hosten.

Gilt für: