HostNameComparisonMode HostNameComparisonMode HostNameComparisonMode HostNameComparisonMode Enum

Définition

Specifies how the host name should be used in URI comparisons when dispatching an incoming message to a service endpoint.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
Héritage
HostNameComparisonModeHostNameComparisonModeHostNameComparisonModeHostNameComparisonMode

Champs

Exact Exact Exact Exact 1

Uses the hostname when dispatching incoming messages to this endpoint, if no strong match was found.Uses the hostname when dispatching incoming messages to this endpoint, if no strong match was found.

StrongWildcard StrongWildcard StrongWildcard StrongWildcard 0

Ignores the hostname when dispatching incoming messages to this endpoint.Ignores the hostname when dispatching incoming messages to this endpoint. This is the default value.This is the default value.

WeakWildcard WeakWildcard WeakWildcard WeakWildcard 2

If no strong or exact match was found, ignores the hostname when matching.If no strong or exact match was found, ignores the hostname when matching.

Exemples

Voici un exemple montrant comment définir la valeur de StrongWildcard dans un fichier de configuration du côté service.The following is an example of how to set StrongWildcard value in a service side configuration file.

Voici un service et un client de base qui utilisent le fichier de configuration précédent.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();

Remarques

La valeur est utilisée pour spécifier les règles de correspondance URI utilisées par les transports tels que HTTP, Net.Tcp et Net.Pipe lors de la distribution de messages entrants.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. Configurez la valeur du HostNameComparisonMode pour une liaison standard utilisant l’un des transports précédents, comme BasicHttpBinding, à l’aide de la propriété HostNameComparisonMode correspondante.Configure the value of the HostNameComparisonMode for a standard binding using one of the preceding transports, such as BasicHttpBinding, using the corresponding HostNameComparisonMode property. Configurez la valeur du HostNameComparisonMode pour un élément de liaison utilisant l'un des transports précédents, comme HttpTransportBindingElement, à l'aide de la propriété HostNameComparisonMode correspondante.Configure the value of the HostNameComparisonMode for a binding element using one of the preceding transports, such as HttpTransportBindingElement, using the corresponding HostNameComparisonMode property.

Chaque valeur du HostNameComparisonMode correspond à un type spécifique de règle de correspondance.Each value of the HostNameComparisonMode corresponds to a specific type of matching rule. La séquence de règles de correspondance tentée respecte toujours l'ordre suivant :The sequence of matching rules attempted is always ordered as follows:

  1. StrongWildcardStrongWildcard

  2. ExactExact

  3. WeakWildcardWeakWildcard

La première valeur, StrongWildcard, ignore le nom d’hôte lors de la correspondance, et il prend la priorité la plus élevée des trois modes correspondants différents.The first value, StrongWildcard, ignores the host name when matching and it takes the highest precedence of the three different matching modes. C’est la valeur par défaut pour une liaison fournie par le système WCF ou un élément de liaison.It is the default value for a WCF system-provided binding or binding element. Cela indique qu'un point de terminaison de service peut être atteint à l'aide de tout nom d'hôte valide.This indicates that a service endpoint can be reached using any valid host name. Par exemple, si MyService est hébergé à l’aide de http://localhost/MyService, il est toujours accessible à l’aide http://www.adatum.com/MyService , car le nom d’hôte (vraisemblablement valide), « adatum.com », est ignoré.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. Notez que le port est également un caractère générique dans ce cas précis.Note that the port is a wildcard here as well.

La deuxième valeur, Exact, nécessite qu’une correspondance exacte est trouvée avec l’URI spécifié, y compris le nom d’hôte, si aucune correspondance forte est trouvée.The second value, Exact, requires that an exact match is found with the URI specified, including the hostname, if no strong match is found. Ce mode, par exemple, ne procède pas à l'équivalence entre noms d'hôte courts et noms de domaine qualifiés complets.This mode, for example, does not perform equivalence between short hostnames and fully-qualified domain names. Cela permet d'utiliser des noms d'hôte en tant que critères de correspondance dans les scénarios où une adresse IP unique est assignée à plusieurs hôtes et d'héberger sur le même ordinateur des services différents avec des points de terminaison distincts.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. Notez que le port est également un caractère générique dans ce cas précis.Note that the port is a wildcard here as well.

La troisième valeur, WeakWildcard, correspond à en ignorant le nom d’hôte si aucune correspondance forte ou exacte a été trouvée.The third value, WeakWildcard, matches by ignoring the hostname if no strong or exact match was found. Le comportement est identique à celui StrongWildcard autre que l’ordre de mise en correspondance : il s’exécute une fois que les liaisons fortes et exactes aient été essayées.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.

Notes

Ces valeurs n'ont aucun effet dans les environnements d'hébergement Services Internet (IIS) ou le service d'activation de processus de Windows (WAS).These values have no effect when used inside of the Internet Information Services (IIS) or Windows Process Activation Service (WAS) hosting environment. Dans ce cas, WCF utilise le mode de comparaison du nom d’hôte est fourni par le Site Web IIS qui héberge les services WCF.In those cases, WCF uses whatever hostname comparison mode is provided by the IIS Web Site hosting the WCF services.

S’applique à