HostNameComparisonMode Wyliczenie
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Określa sposób użycia nazwy hosta w porównaniach identyfikatorów URI podczas wysyłania komunikatu przychodzącego do punktu końcowego usługi.
public enum class HostNameComparisonMode
public enum HostNameComparisonMode
type HostNameComparisonMode =
Public Enum HostNameComparisonMode
- Dziedziczenie
Pola
Exact | 1 | Używa nazwy hosta podczas wysyłania komunikatów przychodzących do tego punktu końcowego, jeśli nie znaleziono silnego dopasowania. |
StrongWildcard | 0 | Ignoruje nazwę hosta podczas wysyłania komunikatów przychodzących do tego punktu końcowego. Jest to wartość domyślna. |
WeakWildcard | 2 | Jeśli nie znaleziono silnego lub dokładnego dopasowania, ignoruje nazwę hosta podczas dopasowywania. |
Przykłady
Poniżej przedstawiono przykład sposobu ustawiania wartości StrongWildcard w pliku konfiguracji po stronie usługi.
Oto podstawowa usługa i klient korzystający z poprzedniego pliku konfiguracji.
[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();
Uwagi
Wartość służy do określania reguł dopasowywania identyfikatorów URI używanych przez transporty, takie jak HTTP, Net.Tcp i Net.Pipe podczas wysyłania komunikatów przychodzących. Skonfiguruj wartość HostNameComparisonMode powiązania standardowego przy użyciu jednego z poprzednich transportów, takich jak BasicHttpBinding, przy użyciu odpowiedniej HostNameComparisonMode właściwości. Skonfiguruj wartość HostNameComparisonMode elementu powiązania przy użyciu jednego z poprzednich transportów, takich jak HttpTransportBindingElement, przy użyciu odpowiedniej HostNameComparisonMode właściwości.
Każda wartość elementu HostNameComparisonMode odpowiada określonemu typowi reguły dopasowania. Sekwencja prób dopasowania reguł jest zawsze uporządkowana w następujący sposób:
StrongWildcard
Exact
WeakWildcard
Pierwsza wartość StrongWildcard ignoruje nazwę hosta podczas dopasowywania i ma najwyższy priorytet trzech różnych trybów dopasowania. Jest to wartość domyślna elementu powiązania lub powiązania dostarczonego przez system WCF. Oznacza to, że można uzyskać dostęp do punktu końcowego usługi przy użyciu dowolnej prawidłowej nazwy hosta. Na przykład jeśli usługa MyService jest hostowana przy użyciu metody , nadal jest osiągalna, http://localhost/MyService``http://www.adatum.com/MyService
ponieważ (prawdopodobnie prawidłowa) nazwa hosta "adatum.com" jest ignorowana. Należy pamiętać, że port jest również symbolem wieloznacznymi.
Druga wartość, Exact, wymaga dokładnego dopasowania z określonym identyfikatorem URI, w tym nazwą hosta, jeśli nie zostanie znalezione silne dopasowanie. Ten tryb, na przykład, nie wykonuje równoważności między krótkimi nazwami hostów i w pełni kwalifikowanymi nazwami domen. Dzięki temu nazwy hostów mogą być używane jako kryteria dopasowania w scenariuszach, w których wiele hostów jest przypisanych do jednego adresu IP i umożliwia hostowanie różnych usług na tej samej maszynie z odrębnymi punktami końcowymi. Należy pamiętać, że port jest również symbolem wieloznacznymi.
Trzecia wartość WeakWildcard jest zgodna, ignorując nazwę hosta, jeśli nie znaleziono silnego lub dokładnego dopasowania. Zachowanie jest takie samo jak w przypadku elementu StrongWildcard innego niż kolejność dopasowywania: działa po próbie silnych i dokładnych powiązań.
Uwaga
Te wartości nie mają wpływu w przypadku użycia w środowisku hostingu usługi Internet Information Services (IIS) lub Windows Process Activation Service (WAS). W takich przypadkach program WCF używa dowolnego trybu porównania nazwy hosta udostępnianego przez witrynę sieci Web usług IIS hostująca usługi WCF.