HostNameComparisonMode HostNameComparisonMode HostNameComparisonMode HostNameComparisonMode Enum

Definición

Especifica cómo debería usarse el nombre de host en comparaciones de URI al enviar un mensaje entrante a un extremo del servicio.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
Herencia
HostNameComparisonModeHostNameComparisonModeHostNameComparisonModeHostNameComparisonMode

Campos

Exact Exact Exact Exact 1

Utiliza el nombre del host al enviar los mensajes entrantes a este extremo, si no se encontrara una coincidencia con un alto porcentaje.Uses the hostname when dispatching incoming messages to this endpoint, if no strong match was found.

StrongWildcard StrongWildcard StrongWildcard StrongWildcard 0

Omite el nombre del host al enviar los mensajes entrantes a este punto de conexión.Ignores the hostname when dispatching incoming messages to this endpoint. Este es el valor predeterminado.This is the default value.

WeakWildcard WeakWildcard WeakWildcard WeakWildcard 2

Si no se encontrara ninguna coincidencia exacta o con un alto porcentaje, se omitirá el nombre del host cuando coincida.If no strong or exact match was found, ignores the hostname when matching.

Ejemplos

El siguiente es un ejemplo de cómo establecer el valor de StrongWildcard en un archivo de configuración del servicio.The following is an example of how to set StrongWildcard value in a service side configuration file.

A continuación, se muestra un servicio básico y un cliente que utilizan el archivo de configuración anterior.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();

Comentarios

El valor se utiliza para especificar las reglas coincidentes de URI utilizadas por los transportes como HTTP, Net.Tcp y Net.Pipe al enviar mensajes entrantes.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. Configure el valor de HostNameComparisonMode para un enlace estándar utilizando uno de los transportes anteriores, como BasicHttpBinding, con la propiedad HostNameComparisonMode correspondiente.Configure the value of the HostNameComparisonMode for a standard binding using one of the preceding transports, such as BasicHttpBinding, using the corresponding HostNameComparisonMode property. Configure el valor de HostNameComparisonMode para un elemento de enlace con uno de los transportes anteriores, como HttpTransportBindingElement, mediante la propiedad HostNameComparisonMode correspondiente.Configure the value of the HostNameComparisonMode for a binding element using one of the preceding transports, such as HttpTransportBindingElement, using the corresponding HostNameComparisonMode property.

Cada valor de HostNameComparisonMode corresponde a un tipo específico de regla coincidente.Each value of the HostNameComparisonMode corresponds to a specific type of matching rule. La secuencia de reglas coincidentes intentada siempre se ordena de la siguiente manera:The sequence of matching rules attempted is always ordered as follows:

  1. StrongWildcardStrongWildcard

  2. ExactoExact

  3. WeakWildcardWeakWildcard

El primer valor, StrongWildcard, omite el nombre de host al comparar y toma la prioridad más alta de los tres modos diferentes de coincidencias.The first value, StrongWildcard, ignores the host name when matching and it takes the highest precedence of the three different matching modes. Es el valor predeterminado para un enlace proporcionado por el sistema WCF o un elemento de enlace.It is the default value for a WCF system-provided binding or binding element. Esto indica que se puede alcanzar un punto de conexión de servicio con cualquier nombre de host válido.This indicates that a service endpoint can be reached using any valid host name. Por ejemplo, si MyService se hospeda utilizando http://localhost/MyService, resulta todavía puede alcanzar con http://www.adatum.com/MyService porque el nombre de host (presumiblemente válido), "adatum.com", se omite.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. Observe que el puerto es también un carácter comodín aquí.Note that the port is a wildcard here as well.

El segundo valor, Exact, requiere que se encuentra una coincidencia exacta con el URI especificado, incluido el nombre de host, si se encuentra ninguna coincidencia segura.The second value, Exact, requires that an exact match is found with the URI specified, including the hostname, if no strong match is found. Por ejemplo, este modo no realiza la equivalencia entre los nombres de host cortos y los nombres de dominio completos.This mode, for example, does not perform equivalence between short hostnames and fully-qualified domain names. Esto permite utilizar los nombres de host como criterios de coincidencia en los escenarios donde hay varios hosts asignados a una dirección IP única y permite hospedar servicios diferentes en el mismo equipo con puntos de conexión distintos.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. Observe que el puerto es también un carácter comodín aquí.Note that the port is a wildcard here as well.

Coincide con el tercer valor, WeakWildcard, pasando por alto el nombre de host si se encuentra ninguna coincidencia exacta o.The third value, WeakWildcard, matches by ignoring the hostname if no strong or exact match was found. El comportamiento es el mismo que StrongWildcard sea el orden de coincidencia: se ejecuta después de que se hayan intentado los enlaces exactos y seguros.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

Estos valores no tienen ningún efecto cuando se usan dentro de los servicios de Internet Information Server (IIS) o el entorno de hospedaje de Servicio de activación de procesos de Windows (WAS).These values have no effect when used inside of the Internet Information Services (IIS) or Windows Process Activation Service (WAS) hosting environment. En esos casos, WCF usa el modo de comparación del nombre de host proporcionado por el sitio Web de IIS aloja los servicios WCF.In those cases, WCF uses whatever hostname comparison mode is provided by the IIS Web Site hosting the WCF services.

Se aplica a