HostNameComparisonMode Enum
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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
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:
StrongWildcard
Exakt
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.