Aracılığıyla paylaş


HostNameComparisonMode Sabit listesi

Tanım

Hizmet uç noktasına gelen bir ileti gönderilirken konak adının URI karşılaştırmalarında nasıl kullanılacağını belirtir.

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

Alanlar

Exact 1

Güçlü bir eşleşme bulunamazsa bu uç noktaya gelen iletiler gönderilirken konak adını kullanır.

StrongWildcard 0

Bu uç noktaya gelen iletiler gönderilirken konak adını yoksayar. Varsayılan değer budur.

WeakWildcard 2

Güçlü veya tam eşleşme bulunamazsa, eşleştirme sırasında ana bilgisayar adını yoksayar.

Örnekler

Aşağıda, hizmet tarafı yapılandırma dosyasında StrongWildcard değerinin nasıl ayarlanacağına ilişkin bir örnek verilmiştir.

Aşağıda, önceki yapılandırma dosyasını kullanan temel bir hizmet ve istemci yer alır.

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

Açıklamalar

değeri, gelen iletiler gönderilirken HTTP, Net.Tcp ve Net.Pipe gibi aktarımlar tarafından kullanılan URI eşleştirme kurallarını belirtmek için kullanılır. Yukarıdaki aktarımlardan birini kullanarak, örneğinBasicHttpBinding, ilgili HostNameComparisonMode özelliği kullanarak standart bağlama için değerini HostNameComparisonMode yapılandırın. Bağlama öğesinin HostNameComparisonMode değerini, ilgili HostNameComparisonMode özelliği kullanarak gibi HttpTransportBindingElementönceki aktarımlardan birini kullanarak yapılandırın.

değerinin HostNameComparisonMode her değeri belirli bir eşleştirme kuralı türüne karşılık gelir. Denenen eşleştirme kuralları dizisi her zaman aşağıdaki gibi sıralanır:

  1. StrongWildcard

  2. Exact

  3. WeakWildcard

İlk değer olan StrongWildcard, eşleştirme sırasında konak adını yoksayar ve üç farklı eşleştirme modunun en yüksek önceliğini alır. WCF sistem tarafından sağlanan bağlama veya bağlama öğesi için varsayılan değerdir. Bu, geçerli bir ana bilgisayar adı kullanılarak bir hizmet uç noktasına ulaşılabildiğini gösterir. Örneğin, MyService kullanılarak http://localhost/MyServicehttp://www.adatum.com/MyService barındırılıyorsa, "adatum.com" ana bilgisayar adı yoksayıldığı için (muhtemelen geçerli) kullanılarak ulaşılabilir. Bağlantı noktasının burada da joker karakter olduğunu unutmayın.

İkinci değer olan Exact, güçlü eşleşme bulunamazsa ana bilgisayar adı da dahil olmak üzere belirtilen URI ile tam eşleşme bulunmasını gerektirir. Örneğin bu mod, kısa konak adları ve tam etki alanı adları arasında denklik gerçekleştirmez. Bu, birden çok konağa tek bir IP adresi atandığı senaryolarda ana bilgisayar adlarının eşleşme ölçütü olarak kullanılmasını sağlar ve farklı hizmetlerin farklı uç noktalara sahip aynı makinede barındırılmasını sağlar. Bağlantı noktasının burada da joker karakter olduğunu unutmayın.

Üçüncü değer olan WeakWildcard, güçlü veya tam eşleşme bulunamazsa konak adını yoksayarak eşleşir. Davranış, eşleştirme sırası dışındaki StrongWildcard ile aynıdır: güçlü ve kesin bağlamalar denendikten sonra çalışır.

Not

Bu değerlerin Internet Information Services (IIS) veya Windows İşlem Etkinleştirme Hizmeti (WAS) barındırma ortamında kullanıldığında hiçbir etkisi yoktur. Böyle durumlarda WCF, WCF hizmetlerini barındıran IIS Web Sitesi tarafından sağlanan ana bilgisayar adı karşılaştırma modunu kullanır.

Şunlara uygulanır