HostNameComparisonMode Énumération

Définition

Spécifie comment le nom d'hôte doit être utilisé dans les comparaisons URI lors de la distribution d'un message entrant à un point de terminaison de service.

public enum class HostNameComparisonMode
public enum HostNameComparisonMode
type HostNameComparisonMode = 
Public Enum HostNameComparisonMode
Héritage
HostNameComparisonMode

Champs

Exact 1

Utilise le nom d'hôte lors de la distribution de messages entrants à ce point de terminaison, si aucune correspondance forte n'a été trouvée.

StrongWildcard 0

Ignore le nom d'hôte lors de la distribution de messages entrants à ce point de terminaison. Valeur par défaut.

WeakWildcard 2

Si aucune correspondance forte ou exacte n'a été trouvée, ignore le nom d'hôte lors de la correspondance.

Exemples

Voici un exemple de définition de la valeur StrongWildcard dans un fichier de configuration côté service.

Voici un service et un client de base qui utilisent le fichier de configuration précédent.

[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. 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. 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.

Chaque valeur du HostNameComparisonMode correspond à un type spécifique de règle de correspondance. La séquence de règles de correspondance tentée respecte toujours l'ordre suivant :

  1. StrongWildcard

  2. Exact

  3. WeakWildcard

La première valeur, StrongWildcard, ignore le nom d’hôte lors de la correspondance et prend la priorité la plus élevée des trois modes de correspondance différents. Il s’agit de la valeur par défaut d’un élément de liaison ou de liaison fourni par le système WCF. Cela indique qu'un point de terminaison de service peut être atteint à l'aide de tout nom d'hôte valide. Par exemple, si MyService est hébergé à l’aide http://localhost/MyServicede , il est toujours accessible à l’aide http://www.adatum.com/MyService du fait que le nom d’hôte (vraisemblablement valide) « adatum.com » est ignoré. Notez que le port est également un caractère générique dans ce cas précis.

La deuxième valeur, Exact, nécessite qu’une correspondance exacte soit trouvée avec l’URI spécifié, y compris le nom d’hôte, si aucune correspondance forte n’est trouvée. Ce mode, par exemple, ne procède pas à l'équivalence entre noms d'hôte courts et noms de domaine qualifiés complets. 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. Notez que le port est également un caractère générique dans ce cas précis.

La troisième valeur, WeakWildcard, correspond en ignorant le nom d’hôte si aucune correspondance forte ou exacte n’a été trouvée. Le comportement est le même que pour StrongWildcard autre que l’ordre de correspondance : il s’exécute après que les liaisons fortes et exactes ont été essayées.

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). Dans ce cas, WCF utilise le mode de comparaison des noms d’hôte fourni par le site Web IIS hébergeant les services WCF.

S’applique à