Freigeben über


HostNameComparisonMode Enumeration

Definition

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

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

Felder

Name Wert Beschreibung
StrongWildcard 0

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

Exact 1

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

WeakWildcard 2

Wenn keine starke oder genaue Übereinstimmung gefunden wurde, ignoriert der Hostname beim Abgleich.

Beispiele

Im Folgenden sehen Sie ein Beispiel zum Festlegen des StrongWildcard-Werts in einer dienstseitigen Konfigurationsdatei.

Hier ist ein grundlegender Dienst und Client, der die vorherige Konfigurationsdatei verwendet.

[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

Der Wert wird verwendet, um die URI-Abgleichsregeln anzugeben, die von Transporten wie HTTP, Net.Tcp und Net.Pipe beim Verteilen eingehender Nachrichten verwendet werden. Konfigurieren Sie den Wert der HostNameComparisonMode für eine Standardbindung mit einem der vorherigen Transporte, z BasicHttpBinding. B. mithilfe der entsprechenden HostNameComparisonMode Eigenschaft. Konfigurieren Sie den Wert für HostNameComparisonMode ein Bindungselement mithilfe eines der vorherigen Transporte, z HttpTransportBindingElement. B. mithilfe der entsprechenden HostNameComparisonMode Eigenschaft.

Jeder Wert des HostNameComparisonMode Werts entspricht einem bestimmten Typ von Übereinstimmenden Regel. Die Sequenz der versuchten Abgleichsregeln wird immer wie folgt sortiert:

  1. Strongwildcard

  2. Genau

  3. WeakWildcard

Der erste Wert , StrongWildcard, ignoriert den Hostnamen beim Abgleich und hat die höchste Priorität der drei verschiedenen Abgleichsmodi. Es ist der Standardwert für ein vom System bereitgestelltes WCF-Bindungs- oder Bindungselement. Dies gibt an, dass ein Dienstendpunkt mit einem beliebigen gültigen Hostnamen erreicht werden kann. Wenn Beispielsweise MyService mit http://localhost/MyServicegehostet wird, ist es immer noch erreichbar, http://www.adatum.com/MyService da der (vermutlich gültige) Hostname "adatum.com" ignoriert wird. Beachten Sie, dass der Port auch hier ein Wildcard 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 führt z. B. keine Äquivalenz zwischen kurzen Hostnamen und vollqualifizierten Domänennamen durch. Auf diese Weise können Hostnamen in den Szenarien verwendet werden, in denen mehrere Hosts eine einzelne IP-Adresse zugewiesen werden, und es ermöglicht es verschiedenen Diensten, auf demselben Computer mit unterschiedlichen Endpunkten gehostet zu werden. Beachten Sie, dass der Port auch hier ein Wildcard ist.

Der dritte Wert, WeakWildcard, stimmt mit dem Ignorieren des Hostnamens überein, wenn keine starke oder genaue Übereinstimmung gefunden wurde. Das Verhalten ist identisch mit strongWildcard außer der Reihenfolge des Abgleichs: Es wird ausgeführt, nachdem die starken und genauen Bindungen ausprobiert wurden.

Hinweis

Diese Werte haben keine Auswirkungen, wenn sie in der Hostumgebung des Internetinformationsdienstes (Internet Information Services, IIS) oder des Windows-Prozessaktivierungsdiensts (WAS) verwendet werden. In diesen Fällen verwendet WCF den hostnamen-Vergleichsmodus, der von der IIS-Website bereitgestellt wird, die die WCF-Dienste hosten.

Gilt für: