Sdílet prostřednictvím


HostNameComparisonMode Výčet

Definice

Určuje, jak se má název hostitele použít při porovnávání identifikátorů URI při odesílání příchozí zprávy do koncového bodu služby.

public enum class HostNameComparisonMode
public enum HostNameComparisonMode
type HostNameComparisonMode = 
Public Enum HostNameComparisonMode
Dědičnost
HostNameComparisonMode

Pole

Exact 1

Použije název hostitele při odesílání příchozích zpráv do tohoto koncového bodu, pokud nebyla nalezena žádná silná shoda.

StrongWildcard 0

Při odesílání příchozích zpráv do tohoto koncového bodu ignoruje název hostitele. Toto je výchozí hodnota.

WeakWildcard 2

Pokud nebyla nalezena žádná silná nebo přesná shoda, při porovnávání ignoruje název hostitele.

Příklady

Následuje příklad nastavení hodnoty StrongWildcard v konfiguračním souboru na straně služby.

Tady je základní služba a klient, který používá předchozí konfigurační soubor.

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

Poznámky

Hodnota se používá k určení pravidel porovnávání identifikátorů URI používaných přenosy, jako jsou HTTP, Net.Tcp a Net.Pipe při odesílání příchozích zpráv. Nakonfigurujte hodnotu HostNameComparisonMode standardní vazby pomocí jednoho z předchozích přenosů, například BasicHttpBinding, pomocí odpovídající HostNameComparisonMode vlastnosti. Nakonfigurujte hodnotu elementu HostNameComparisonMode vazby pomocí jednoho z předchozích přenosů, například HttpTransportBindingElement, pomocí odpovídající HostNameComparisonMode vlastnosti.

Každá hodnota HostNameComparisonMode odpovídá určitému typu odpovídajícího pravidla. Pořadí shodných pravidel, o které se pokoušíte, je vždy seřazeno následujícím způsobem:

  1. StrongWildcard

  2. Stejné

  3. WeakWildcard

První hodnota, StrongWildcard, ignoruje název hostitele při porovnávání a má nejvyšší prioritu ze tří různých shodných režimů. Jedná se o výchozí hodnotu pro systémovou vazbu nebo element vazby WCF. To znamená, že koncový bod služby je dostupný pomocí libovolného platného názvu hostitele. Pokud je například služba MyService hostovaná pomocí http://localhost/MyService, je stále dostupná pomocí http://www.adatum.com/MyService , protože se ignoruje (pravděpodobně platný) název hostitele "adatum.com". Všimněte si, že port je zde také zástupný znak.

Druhá hodnota, Exact, vyžaduje, aby byla nalezena přesná shoda se zadaným identifikátorem URI, včetně názvu hostitele, pokud není nalezena žádná silná shoda. Tento režim například neprovádí ekvivalenci mezi krátkými názvy hostitelů a plně kvalifikovanými názvy domén. To umožňuje, aby se názvy hostitelů používaly jako kritéria shody ve scénářích, kdy má více hostitelů přiřazenou jednu IP adresu, a umožňuje hostování různých služeb na stejném počítači s odlišnými koncovými body. Všimněte si, že port je zde také zástupný znak.

Třetí hodnota WeakWildcard odpovídá ignorováním názvu hostitele, pokud nebyla nalezena žádná silná nebo přesná shoda. Chování je stejné jako pro StrongWildcard jiné než pořadí shody: spustí se po vyzkoušení silných a přesných vazeb.

Poznámka

Tyto hodnoty nemají žádný vliv při použití v hostitelském prostředí Internetové informační služby (IIS) nebo služby WAS (Windows Process Activation Service). V těchto případech WCF používá jakýkoli režim porovnání názvů hostitelů, který je poskytován webem služby IIS, který je hostitelem služeb WCF.

Platí pro