HostNameComparisonMode Enum

Definition

Anger hur värdnamnet ska användas i URI-jämförelser när ett inkommande meddelande skickas till en tjänstslutpunkt.

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

Fält

Name Värde Description
StrongWildcard 0

Ignorerar värdnamnet när inkommande meddelanden skickas till den här slutpunkten. Det här är standardvärdet.

Exact 1

Använder värdnamnet när inkommande meddelanden skickas till den här slutpunkten, om ingen stark matchning hittades.

WeakWildcard 2

Om ingen stark eller exakt matchning hittades ignorerar värdnamnet vid matchning.

Exempel

Följande är ett exempel på hur du anger StrongWildcard-värde i en konfigurationsfil på tjänstsidan.

Här är en grundläggande tjänst och klient som använder den föregående konfigurationsfilen.

[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();

Kommentarer

Värdet används för att ange de URI-matchningsregler som används av transporter som HTTP, Net.Tcp och Net.Pipe när inkommande meddelanden skickas. Konfigurera värdet för för en standardbindning med någon av de föregående transporterna, till exempel HostNameComparisonMode, med hjälp av BasicHttpBinding motsvarande HostNameComparisonMode egenskap. Konfigurera värdet för för ett bindningselement med någon av de föregående transporterna, till exempel HostNameComparisonMode, med hjälp av HttpTransportBindingElement motsvarande HostNameComparisonMode egenskap.

Varje värde för HostNameComparisonMode motsvarar en specifik typ av matchningsregel. Sekvensen med matchande regler som försöker ordnas alltid enligt följande:

  1. StrongWildcard

  2. Exakt

  3. WeakWildcard

Det första värdet, StrongWildcard, ignorerar värdnamnet vid matchning och det har den högsta prioriteten för de tre olika matchande lägena. Det är standardvärdet för ett bindnings- eller bindningselement som tillhandahålls av WCF-systemet. Detta anger att en tjänstslutpunkt kan nås med valfritt giltigt värdnamn. Om MyService till exempel hanteras med kan http://localhost/MyServiceden fortfarande nås med hjälp av http://www.adatum.com/MyService eftersom värdnamnet (förmodligen giltigt) "adatum.com" ignoreras. Observera att porten också är ett jokertecken här.

Det andra värdet, Exact, kräver att en exakt matchning hittas med angiven URI, inklusive värdnamnet, om ingen stark matchning hittas. Det här läget utför till exempel inte likvärdighet mellan korta värdnamn och fullständigt kvalificerade domännamn. Detta gör att värdnamn kan användas som matchningsvillkor i scenarier där flera värdar tilldelas en enda IP-adress och gör att olika tjänster kan finnas på samma dator med distinkta slutpunkter. Observera att porten också är ett jokertecken här.

Det tredje värdet, WeakWildcard, matchar genom att ignorera värdnamnet om ingen stark eller exakt matchning hittades. Beteendet är detsamma som för StrongWildcard förutom matchningsordningen: det körs efter att de starka och exakta bindningarna har provats.

Note

Dessa värden har ingen effekt när de används i värdmiljön Internet Information Services (IIS) eller Windows Process Activation Service (WAS). I dessa fall använder WCF det värdnamnsjämförelseläge som tillhandahålls av IIS-webbplatsen som är värd för WCF-tjänsterna.

Gäller för