HostNameComparisonMode Enum

Definitie

Hiermee geeft u op hoe de hostnaam moet worden gebruikt in URI-vergelijkingen bij het verzenden van een binnenkomend bericht naar een service-eindpunt.

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

Velden

Name Waarde Description
StrongWildcard 0

Negeert de hostnaam bij het verzenden van binnenkomende berichten naar dit eindpunt. Dit is de standaardwaarde.

Exact 1

Gebruikt de hostnaam bij het verzenden van binnenkomende berichten naar dit eindpunt, als er geen sterke overeenkomst is gevonden.

WeakWildcard 2

Als er geen sterke of exacte overeenkomst is gevonden, negeert u de hostnaam wanneer deze overeenkomt.

Voorbeelden

Hier volgt een voorbeeld van het instellen van de waarde StrongWildcard in een configuratiebestand aan de servicezijde.

Hier volgt een eenvoudige service en client die gebruikmaken van het voorgaande configuratiebestand.

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

Opmerkingen

De waarde wordt gebruikt om de URI-overeenkomende regels op te geven die worden gebruikt door transporten zoals HTTP, Net.Tcp en Net.Pipe bij het verzenden van binnenkomende berichten. Configureer de waarde van de HostNameComparisonMode voor een standaardbinding met behulp van een van de voorgaande transporten, zoals BasicHttpBindingde bijbehorende HostNameComparisonMode eigenschap. Configureer de waarde van het HostNameComparisonMode voor een bindingselement met behulp van een van de voorgaande transporten, zoals HttpTransportBindingElementde bijbehorende HostNameComparisonMode eigenschap.

Elke waarde van de HostNameComparisonMode waarde komt overeen met een specifiek type overeenkomende regel. De volgorde van overeenkomende regels die worden geprobeerd, wordt altijd als volgt geordend:

  1. StrongWildcard

  2. Nauwkeurig

  3. WeakWildcard

De eerste waarde, StrongWildcard, negeert de hostnaam wanneer deze overeenkomt en heeft de hoogste prioriteit van de drie verschillende overeenkomende modi. Dit is de standaardwaarde voor een door het WCF-systeem geleverde binding of bindingselement. Dit geeft aan dat een service-eindpunt kan worden bereikt met behulp van een geldige hostnaam. Als MyService bijvoorbeeld wordt gehost met behulp http://localhost/MyServicevan, is deze nog steeds bereikbaar http://www.adatum.com/MyService omdat de (vermoedelijk geldige) hostnaam, 'adatum.com', wordt genegeerd. Houd er rekening mee dat de poort hier ook een jokerteken is.

De tweede waarde, Exact, vereist dat er een exacte overeenkomst wordt gevonden met de URI die is opgegeven, inclusief de hostnaam, als er geen sterke overeenkomst wordt gevonden. In deze modus wordt bijvoorbeeld geen gelijkwaardigheid tussen korte hostnamen en volledig gekwalificeerde domeinnamen uitgevoerd. Hierdoor kunnen hostnamen worden gebruikt als overeenkomende criteria in de scenario's waarin meerdere hosts één IP-adres krijgen toegewezen en kunnen verschillende services worden gehost op dezelfde computer met afzonderlijke eindpunten. Houd er rekening mee dat de poort hier ook een jokerteken is.

De derde waarde, WeakWildcard, komt overeen door de hostnaam te negeren als er geen sterke of exacte overeenkomst is gevonden. Het gedrag is hetzelfde als voor StrongWildcard, behalve de volgorde van overeenkomende waarden: het wordt uitgevoerd nadat de sterke en exacte bindingen zijn geprobeerd.

Note

Deze waarden hebben geen effect wanneer deze worden gebruikt in de hostomgeving van de Internet Information Services (IIS) of Windows Process Activation Service (WAS). In die gevallen gebruikt WCF elke hostnaamvergelijkingsmodus die wordt geleverd door de IIS-website die als host fungeert voor de WCF-services.

Van toepassing op