HostNameComparisonMode Sabit listesi
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Bir 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
Alanlar
| Name | Değer | Description |
|---|---|---|
| StrongWildcard | 0 | Bu uç noktaya gelen iletiler gönderilirken konak adını yoksayar. Bu varsayılan değerdir. |
| Exact | 1 | Güçlü bir eşleşme bulunamazsa, bu uç noktaya gelen iletiler gönderilirken konak adını kullanır. |
| 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.
Burada, ö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 (örneğinBasicHttpBinding, ilgili HostNameComparisonMode özelliği kullanarak) kullanarak bir standart bağlama için değerini HostNameComparisonMode yapılandırın. Bağlama öğesinin HostNameComparisonMode değerini, HttpTransportBindingElementilgili HostNameComparisonMode özelliği kullanarak gibi önceki aktarımlardan birini kullanarak yapılandırın.
öğesinin HostNameComparisonMode her değeri belirli bir eşleşen kural türüne karşılık gelir. Denenen eşleştirme kuralları dizisi her zaman aşağıdaki gibi sıralanır:
StrongWildcard
Kesin
WeakWildcard
İlk değer olan StrongWildcard, eşleştirme sırasında ana bilgisayar adını yoksayar ve üç farklı eşleştirme modundan en yüksek önceliğe sahiptir. 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" (muhtemelen geçerli) ana bilgisayar adı yoksayıldığı için 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ı ile 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ına olanak tanır ve farklı hizmetlerin ayrı uç noktaları olan 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 ana bilgisayar adını yoksayarak eşleşir. Davranış, StrongWildcard ile eşleşme sırası dışında aynıdır: güçlü ve kesin bağlamalar denendikten sonra çalışır.
Uyarı
Bu değerlerin Internet Information Services (IIS) veya Windows İşlem Etkinleştirme Hizmeti (WAS) barındırma ortamı içinde kullanıldığında hiçbir etkisi yoktur. Bu gibi durumlarda WCF, WCF hizmetlerini barındıran IIS Web Sitesi tarafından sağlanan ana bilgisayar adı karşılaştırma modunu kullanır.