HostNameComparisonMode HostNameComparisonMode HostNameComparisonMode HostNameComparisonMode Enum

Definizione

Consente di specificare la modalità di utilizzo del nome host nei confronti fra URI quando si invia un messaggio in ingresso a un endpoint di servizio.Specifies how the host name should be used in URI comparisons when dispatching an incoming message to a service endpoint.

public enum class HostNameComparisonMode
public enum HostNameComparisonMode
type HostNameComparisonMode = 
Public Enum HostNameComparisonMode
Ereditarietà
HostNameComparisonModeHostNameComparisonModeHostNameComparisonModeHostNameComparisonMode

Campi

Exact Exact Exact Exact 1

Quando si inviano messaggi in ingresso a questo endpoint e non viene rilevata alcuna corrispondenza forte, il nome host viene utilizzato.Uses the hostname when dispatching incoming messages to this endpoint, if no strong match was found.

StrongWildcard StrongWildcard StrongWildcard StrongWildcard 0

Quando si inviano messaggi in ingresso a questo endpoint, il nome host viene ignorato.Ignores the hostname when dispatching incoming messages to this endpoint. Rappresenta il valore predefinito.This is the default value.

WeakWildcard WeakWildcard WeakWildcard WeakWildcard 2

Se non viene rilevata alcuna corrispondenza forte oppure esatta, la verifica della corrispondenza viene eseguita ignorando il nome host.If no strong or exact match was found, ignores the hostname when matching.

Esempi

Di seguito è riportato un esempio di come impostare il valore di StrongWildcard in un file di configurazione del servizio.The following is an example of how to set StrongWildcard value in a service side configuration file.

Di seguito sono mostrati un servizio e un client di base che utilizzano il file di configurazione precedente.Here is a basic service and client that use the preceding configuration file.

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

Commenti

Questo valore consente di specificare le regole di corrispondenza fra URI utilizzate dai trasporti, ad esempio HTTP, Net.Tcp e Net.Pipe, per inviare i messaggi in ingresso.The value is used to specify the URI matching rules used by transports such as HTTP, Net.Tcp, and Net.Pipe when dispatching incoming messages. Per un'associazione standard che utilizza uno dei trasporti appena elencati, ad esempio per un'associazione HostNameComparisonMode che utilizza la proprietà BasicHttpBinding corrispondente, configurare il valore dell'enumerazione HostNameComparisonMode.Configure the value of the HostNameComparisonMode for a standard binding using one of the preceding transports, such as BasicHttpBinding, using the corresponding HostNameComparisonMode property. Per un elemento di associazione che utilizza uno dei trasporti appena elencati, ad esempio per un elemento HostNameComparisonMode che utilizza la proprietà HttpTransportBindingElement corrispondente, configurare il valore dell'enumerazione HostNameComparisonMode.Configure the value of the HostNameComparisonMode for a binding element using one of the preceding transports, such as HttpTransportBindingElement, using the corresponding HostNameComparisonMode property.

Ogni valore dell'enumerazione HostNameComparisonMode corrisponde a un tipo specifico di regola di corrispondenza.Each value of the HostNameComparisonMode corresponds to a specific type of matching rule. La sequenza di applicazione delle regole di corrispondenza rispetta sempre l'ordine seguente:The sequence of matching rules attempted is always ordered as follows:

  1. StrongWildcardStrongWildcard

  2. ExactExact

  3. WeakWildcardWeakWildcard

Il primo valore, StrongWildcard, ignorando il nome host in caso di corrispondenza e richiede la priorità più alta fra le tre diverse modalità di corrispondenza.The first value, StrongWildcard, ignores the host name when matching and it takes the highest precedence of the three different matching modes. È il valore predefinito per un'associazione fornita dal sistema WCF o un elemento di associazione.It is the default value for a WCF system-provided binding or binding element. Ciò indica che un endpoint di servizio può essere raggiunto tramite qualsiasi nome host valido.This indicates that a service endpoint can be reached using any valid host name. Ad esempio, se ospitato http://localhost/MyService, è ancora raggiungibile mediante http://www.adatum.com/MyService perché il nome host (presumibilmente valido), "adatum.com" viene ignorato.For example, if MyService is hosted using http://localhost/MyService, it is still reachable using http://www.adatum.com/MyService because the (presumably valid) host name, "adatum.com", is ignored. Si noti che in questo caso anche la porta è un carattere jolly.Note that the port is a wildcard here as well.

Il secondo valore, Exact, è necessario che viene trovata una corrispondenza esatta con l'URI specificato, inclusi il nome host, se non viene trovata alcuna corrispondenza forte.The second value, Exact, requires that an exact match is found with the URI specified, including the hostname, if no strong match is found. In questa modalità, ad esempio, i nomi host brevi e i nomi di dominio completi non sono considerati equivalenti.This mode, for example, does not perform equivalence between short hostnames and fully-qualified domain names. Ciò consente di utilizzare i nomi host come criterio di corrispondenza nei casi in cui un unico indirizzo IP viene assegnato a più host e di ospitare nello stesso computer più servizi con endpoint distinti.This allows hostnames to be used as match criteria in the scenarios where multiple hosts are assigned a single IP address and it enables different services to be hosted on the same machine with distinct endpoints. Si noti che in questo caso anche la porta è un carattere jolly.Note that the port is a wildcard here as well.

Il terzo valore, WeakWildcard, corrisponde a quanto consente di ignorare il nome host se è stata trovata alcuna corrispondenza forte oppure esatta.The third value, WeakWildcard, matches by ignoring the hostname if no strong or exact match was found. Il comportamento è identico a quello di StrongWildcard diverso rispetto all'ordine della corrispondenza: viene eseguita dopo che sono state provate le associazioni forte ed esatte.The behavior is the same as for StrongWildcard other than the order of matching: it runs after the strong and exact bindings have been tried.

Nota

Questi valori non hanno alcun effetto se utilizzati in ambienti host IIS (Internet Information Services) o del servizio Attivazione processo Windows (WAS).These values have no effect when used inside of the Internet Information Services (IIS) or Windows Process Activation Service (WAS) hosting environment. In questi casi, WCF Usa qualsiasi modalità di confronto del nome host viene fornito per il sito Web IIS che ospita i servizi WCF.In those cases, WCF uses whatever hostname comparison mode is provided by the IIS Web Site hosting the WCF services.

Si applica a