HostNameComparisonMode HostNameComparisonMode HostNameComparisonMode HostNameComparisonMode Enum

Definition

Gibt an, wie der Hostname in URI-Vergleichen beim Verteilen einer eingehenden Nachricht an einen Dienstendpunkt verwendet werden soll.Specifies how the host name should be used in URI comparisons when dispatching an incoming message to a service endpoint.

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

Felder

Exact Exact Exact Exact 1

Verwendet den Hostnamen beim Verteilen eingehender Nachrichten an diesen Endpunkt, wenn keine hohe Übereinstimmung gefunden wurde.Uses the hostname when dispatching incoming messages to this endpoint, if no strong match was found.

StrongWildcard StrongWildcard StrongWildcard StrongWildcard 0

Ignoriert den Hostnamen beim Verteilen eingehender Nachrichten an diesen Endpunkt.Ignores the hostname when dispatching incoming messages to this endpoint. Dies ist der Standardwert.This is the default value.

WeakWildcard WeakWildcard WeakWildcard WeakWildcard 2

Wenn keine hohe oder exakte Übereinstimmung gefunden wurde, wird der Hostname beim Abgleichen ignoriert.If no strong or exact match was found, ignores the hostname when matching.

Beispiele

Im folgenden finden Sie ein Beispiel dafür, wie Sie den StrongWildcard-Wert in einer Dienst seitigen Konfigurationsdatei festlegen.The following is an example of how to set StrongWildcard value in a service side configuration file.

Dies ist hier ein grundlegender Dienst und Client, die die vorangehende Konfigurationsdatei verwenden.Here is a basic service and client that use the preceding configuration file.

[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.The value is used to specify the URI matching rules used by transports such as HTTP, Net.Tcp, and Net.Pipe when dispatching incoming messages. 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.Configure the value of the HostNameComparisonMode for a standard binding using one of the preceding transports, such as BasicHttpBinding, using the corresponding HostNameComparisonMode property. 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.Configure the value of the HostNameComparisonMode for a binding element using one of the preceding transports, such as HttpTransportBindingElement, using the corresponding HostNameComparisonMode property.

Jeder Wert von HostNameComparisonMode entspricht einem bestimmten Typ der Übereinstimmungsregel.Each value of the HostNameComparisonMode corresponds to a specific type of matching rule. Die Abfolge von Übereinstimmungsregeln, die getestet werden, ist immer wie folgt:The sequence of matching rules attempted is always ordered as follows:

  1. StrongWildcardStrongWildcard

  2. GenauExact

  3. WeakWildcardWeakWildcard

Der erste Wert, StrongWildcard, ignoriert den Hostnamen beim Abgleich und übernimmt die höchste Rangfolge der drei verschiedenen übereinstimmenden Modi.The first value, StrongWildcard, ignores the host name when matching and it takes the highest precedence of the three different matching modes. Dies ist der Standardwert für eine vom WCF-System bereitgestellte Bindung oder ein Bindungs Element.It is the default value for a WCF system-provided binding or binding element. Dadurch wird angegeben, dass ein Dienstendpunkt mit jedem gültigen Hostnamen erreicht werden kann.This indicates that a service endpoint can be reached using any valid host name. Wenn z. b. MyService mithilfe http://localhost/MyServicevon gehostet wird, ist es weiterhin mit http://www.adatum.com/MyService erreichbar, da der (vermutlich gültige) Hostname "adatum.com" ignoriert wird.For example, if MyService is hosted using http://localhost/MyService, it is still reachable using http://www.adatum.com/MyService because the (presumably valid) host name, "adatum.com", is ignored. Beachten Sie, dass der Port auch hier ein Platzhalter ist.Note that the port is a wildcard here as well.

Der zweite Wert erfordert, dass eine genaue Entsprechung mit dem angegebenen URI, einschließlich des Host namens, gefunden wird, wenn keine starke Entsprechung gefunden wird.The second value, Exact, requires that an exact match is found with the URI specified, including the hostname, if no strong match is found. Dieser Modus prüft z. B. nicht die Übereinstimmung von kurzen Hostnamen mit vollqualifizierten Domänennamen.This mode, for example, does not perform equivalence between short hostnames and fully-qualified domain names. 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.This allows hostnames to be used as match criteria in the scenarios where multiple hosts are assigned a single IP address and it enables different services to be hosted on the same machine with distinct endpoints. Beachten Sie, dass der Port auch hier ein Platzhalter ist.Note that the port is a wildcard here as well.

Der dritte Wert, WeakWildcard, stimmt überein, indem der Hostname ignoriert wird, wenn keine hohe oder exakte Übereinstimmung gefunden wurde.The third value, WeakWildcard, matches by ignoring the hostname if no strong or exact match was found. Das Verhalten ist identisch mit dem für StrongWildcard, das nicht der Reihenfolge der Übereinstimmung entspricht: Es wird ausgeführt, nachdem die starken und exakten Bindungen ausprobiert wurden.The behavior is the same as for StrongWildcard other than the order of matching: it runs after the strong and exact bindings have been tried.

Hinweis

Diese Werte haben keine Auswirkungen, wenn sie innerhalb der Internet Information Services (IIS)- oder Windows Process Activation Service (WAS)-Hostingumgebung verwendet werden.These values have no effect when used inside of the Internet Information Services (IIS) or Windows Process Activation Service (WAS) hosting environment. In diesen Fällen verwendet WCF einen beliebigen Hostnamen-Vergleichs Modus, der von der IIS-Website bereitgestellt wird, auf der die WCF-Dienste gehostet werden.In those cases, WCF uses whatever hostname comparison mode is provided by the IIS Web Site hosting the WCF services.

Gilt für: