Bagikan melalui


HostNameComparisonMode Enum

Definisi

Menentukan bagaimana nama host harus digunakan dalam perbandingan URI saat mengirimkan pesan masuk ke titik akhir layanan.

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

Bidang

Nama Nilai Deskripsi
StrongWildcard 0

Mengabaikan nama host ketika mengirimkan pesan masuk ke titik akhir ini. Ini adalah nilai default.

Exact 1

Menggunakan nama host saat mengirimkan pesan masuk ke titik akhir ini, jika tidak ada kecocokan kuat yang ditemukan.

WeakWildcard 2

Jika tidak ada kecocokan kuat atau tepat yang ditemukan, abaikan nama host saat cocok.

Contoh

Berikut ini adalah contoh cara mengatur nilai StrongWildcard dalam file konfigurasi sisi layanan.

Berikut adalah layanan dasar dan klien yang menggunakan file konfigurasi sebelumnya.

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

Keterangan

Nilai digunakan untuk menentukan aturan pencocokan URI yang digunakan oleh transportasi seperti HTTP, Net.Tcp, dan Net.Pipe saat mengirimkan pesan masuk. Konfigurasikan nilai HostNameComparisonMode untuk pengikatan standar menggunakan salah satu transportasi sebelumnya, seperti BasicHttpBinding, menggunakan properti yang HostNameComparisonMode sesuai. Konfigurasikan nilai HostNameComparisonMode untuk elemen pengikatan menggunakan salah satu transportasi sebelumnya, seperti HttpTransportBindingElement, menggunakan properti yang HostNameComparisonMode sesuai.

Setiap nilai HostNameComparisonMode sesuai dengan jenis aturan pencocokan tertentu. Urutan aturan pencocokan yang dicoba selalu diurutkan sebagai berikut:

  1. Kartu StrongWild

  2. Tepat

  3. Kartu WeakWild

Nilai pertama, StrongWildcard, mengabaikan nama host saat mencocokkan dan membutuhkan prioritas tertinggi dari tiga mode pencocokan yang berbeda. Ini adalah nilai default untuk elemen pengikatan atau pengikatan yang disediakan sistem WCF. Ini menunjukkan bahwa titik akhir layanan dapat dijangkau menggunakan nama host yang valid. Misalnya, jika MyService dihosting menggunakan http://localhost/MyService, itu masih dapat dijangkau menggunakan http://www.adatum.com/MyService karena nama host (mungkin valid), "adatum.com", diabaikan. Perhatikan bahwa port juga merupakan kartubebas di sini.

Nilai kedua, Persis, mengharuskan kecocokan yang tepat ditemukan dengan URI yang ditentukan, termasuk nama host, jika tidak ada kecocokan yang kuat yang ditemukan. Mode ini, misalnya, tidak melakukan kesetaraan antara nama host pendek dan nama domain yang sepenuhnya memenuhi syarat. Ini memungkinkan nama host digunakan sebagai kriteria kecocokan dalam skenario di mana beberapa host diberi satu alamat IP dan memungkinkan layanan yang berbeda untuk dihosting pada komputer yang sama dengan titik akhir yang berbeda. Perhatikan bahwa port juga merupakan kartubebas di sini.

Nilai ketiga, WeakWildcard, cocok dengan mengabaikan nama host jika tidak ada kecocokan yang kuat atau tepat yang ditemukan. Perilakunya sama dengan untuk StrongWildcard selain urutan pencocokan: ia berjalan setelah pengikatan yang kuat dan tepat telah dicoba.

Nota

Nilai-nilai ini tidak berpengaruh ketika digunakan di dalam lingkungan hosting Internet Information Services (IIS) atau Windows Process Activation Service (WAS). Dalam kasus tersebut, WCF menggunakan mode perbandingan nama host apa pun yang disediakan oleh Situs Web IIS yang menghosting layanan WCF.

Berlaku untuk