CustomBinding Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Define un enlace de una lista de elementos de enlace.
public ref class CustomBinding : System::ServiceModel::Channels::Binding
public class CustomBinding : System.ServiceModel.Channels.Binding
[System.Windows.Markup.ContentProperty("Elements")]
public class CustomBinding : System.ServiceModel.Channels.Binding
type CustomBinding = class
inherit Binding
[<System.Windows.Markup.ContentProperty("Elements")>]
type CustomBinding = class
inherit Binding
Public Class CustomBinding
Inherits Binding
- Herencia
- Atributos
Ejemplos
En el siguiente ejemplo de código se muestra cómo crear un objeto CustomBinding utilizando un ReliableSessionBindingElement y un HttpTransportBindingElement
Uri baseAddress = new Uri("http://localhost:8000/servicemodelsamples/service");
// Create a ServiceHost for the CalculatorService type and provide the base address.
using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress))
{
// Create a custom binding that contains two binding elements.
ReliableSessionBindingElement reliableSession = new ReliableSessionBindingElement();
reliableSession.Ordered = true;
HttpTransportBindingElement httpTransport = new HttpTransportBindingElement();
httpTransport.AuthenticationScheme = System.Net.AuthenticationSchemes.Anonymous;
httpTransport.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard;
CustomBinding binding = new CustomBinding(reliableSession, httpTransport);
// Add an endpoint using that binding.
serviceHost.AddServiceEndpoint(typeof(ICalculator), binding, "");
// Add a MEX endpoint.
ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
smb.HttpGetEnabled = true;
smb.HttpGetUrl = new Uri("http://localhost:8001/servicemodelsamples");
serviceHost.Description.Behaviors.Add(smb);
// Open the ServiceHostBase to create listeners and start listening for messages.
serviceHost.Open();
// The service can now be accessed.
Console.WriteLine("The service is ready.");
Console.WriteLine("Press <ENTER> to terminate service.");
Console.WriteLine();
Console.ReadLine();
// Close the ServiceHostBase to shutdown the service.
serviceHost.Close();
}
Dim baseAddress As New Uri("http://localhost:8000/servicemodelsamples/service")
' Create a ServiceHost for the CalculatorService type and provide the base address.
Using serviceHost As New ServiceHost(GetType(CalculatorService), baseAddress)
' Create a custom binding that contains two binding elements.
Dim reliableSession As New ReliableSessionBindingElement()
reliableSession.Ordered = True
Dim httpTransport As New HttpTransportBindingElement()
httpTransport.AuthenticationScheme = System.Net.AuthenticationSchemes.Anonymous
httpTransport.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard
Dim binding As New CustomBinding(reliableSession, httpTransport)
' Add an endpoint using that binding.
serviceHost.AddServiceEndpoint(GetType(ICalculator), binding, "")
' Add a MEX endpoint.
Dim smb As New ServiceMetadataBehavior()
smb.HttpGetEnabled = True
smb.HttpGetUrl = New Uri("http://localhost:8001/servicemodelsamples")
serviceHost.Description.Behaviors.Add(smb)
' Open the ServiceHostBase to create listeners and start listening for messages.
serviceHost.Open()
' The service can now be accessed.
Console.WriteLine("The service is ready.")
Console.WriteLine("Press <ENTER> to terminate service.")
Console.WriteLine()
Console.ReadLine()
' Close the ServiceHostBase to shutdown the service.
serviceHost.Close()
End Using
Comentarios
Utilice un enlace personalizado cuando uno de los enlaces proporcionados por el sistema no cumpla los requisitos del servicio. Se pudo utilizar un enlace personalizado, por ejemplo, para habilitar el uso de un nuevo transporte o un nuevo codificador en un punto de conexión de servicio.
Un enlace personalizado se construye utilizando uno de CustomBinding de una colección de elementos de enlace que se apilan en un orden específico:
En la parte superior hay un TransactionFlowBindingElement opcional que permite el flujo de transacciones.
A continuación hay un ReliableSessionBindingElement opcional que proporciona una sesión y un mecanismo de orden, como se define en la especificación WS-ReliableMessaging. Esta noción de sesión puede cruzar SOAP y transportar intermediarios.
A continuación hay un elemento de enlace de seguridad opcional que proporciona las características de seguridad como la autorización, autenticación, protección y confidencialidad. Windows Communication Foundation (WCF) proporciona los siguientes elementos de enlace de seguridad:
A continuación están los modelos de mensaje opcionales especificados por elementos de enlace:
A continuación, se encuentran los elementos de enlace de asistentes/actualizaciones de transporte opcionales:
A continuación hay un elemento de enlace de codificación del mensaje requerido. Puede utilizar su propio transporte o utilizar uno de los siguientes enlaces de codificación del mensaje:
En la parte inferior hay un elemento de transporte necesario. Puede utilizar su propio transporte o uno de los elementos de enlace de transporte que ofrece Windows Communication Foundation (WCF):
La tabla siguiente resume las opciones de cada nivel.
Nivel | Opciones | Obligatorio |
---|---|---|
Flujo de transacciones | TransactionFlowBindingElement | No |
Confiabilidad | ReliableSessionBindingElement | No |
Seguridad | Simétrico, Asimétrico, Nivel de transporte | No |
Cambiar forma | CompositeDuplexBindingElement | No |
Actualizaciones de transporte | Secuencia de SSL, secuencia de Windows, Resolución del mismo nivel | No |
Encoding | Texto, binario, MTOM, personalizado | Sí |
Transporte | TCP, canalizaciones con nombre, http, HTTPS, versiones de MSMQ, personalizado | Sí |
Además, puede definir sus propios elementos de enlace e insertarlos entre cualquiera de las capas definidas anteriores.
Para obtener una explicación sobre cómo utilizar un enlace personalizado para modificar un enlace proporcionado por el sistema, consulte Personalización de un enlace proporcionado por el sistema.
Nota
Al llamar a un servicio WCF compilado con .NET Framework 4.0 o posterior desde una aplicación cliente WCF compilada con .NET Framework 3.5 o versiones anteriores, el archivo de configuración generado por svcutil.exe o la adición de una referencia de servicio desde Visual Studio contendrá el atributo de validez en la configuración de enlace. El entorno de ejecución de .NET Framework 3.5 no reconoce este atributo y la aplicación producirá un ConfigurationErrorsException con el mensaje "Validez de atributo no reconocido". Para solucionar este problema, quite el atributo de validez de la configuración del enlace.
Constructores
CustomBinding() |
Inicializa una nueva instancia de la clase CustomBinding. |
CustomBinding(Binding) |
Inicializa una nueva instancia de la clase CustomBinding a partir de los valores un enlace especificado. |
CustomBinding(BindingElement[]) |
Inicializa una nueva instancia de la clase CustomBinding a partir de una matriz de elementos de enlace. |
CustomBinding(IEnumerable<BindingElement>) |
Inicializa una nueva instancia de la clase CustomBinding con los elementos de enlace de una pila del canal completa. |
CustomBinding(String) |
Inicializa una nueva instancia de la clase CustomBinding. |
CustomBinding(String, String, BindingElement[]) |
Inicializa una nueva instancia de la clase CustomBinding de una matriz de elementos de enlace con nombre y espacio de nombres especificados. |
Propiedades
CloseTimeout |
Obtiene o establece el intervalo de tiempo proporcionado para que una conexión se cierre antes de que el transporte genere una excepción. (Heredado de Binding) |
Elements |
Obtiene los elementos de enlace del enlace personalizado. |
MessageVersion |
Obtiene la versión de mensaje utilizada por los clientes y servicios configurados con el enlace. (Heredado de Binding) |
Name |
Obtiene o establece el nombre del enlace. (Heredado de Binding) |
Namespace |
Obtiene o establece el espacio de nombres XML del enlace. (Heredado de Binding) |
OpenTimeout |
Obtiene o establece el intervalo de tiempo proporcionado para que una conexión se abra antes de que el transporte genere una excepción. (Heredado de Binding) |
ReceiveTimeout |
Obtiene o establece el intervalo de tiempo que una conexión puede permanecer inactiva, durante el cual no se recibe ningún mensaje de la aplicación, antes de interrumpir la conexión. (Heredado de Binding) |
Scheme |
Obtiene el esquema URI para el transporte utilizado por el enlace personalizado. |
SendTimeout |
Obtiene o establece el intervalo de tiempo proporcionado para que una operación de escritura se complete antes de que el transporte genere una excepción. (Heredado de Binding) |
Métodos
BuildChannelFactory<TChannel>(BindingParameterCollection) |
Compila la pila de generador de canales en el cliente que crea un tipo especificado de canal y satisface las características especificadas por una colección de parámetros de enlace. (Heredado de Binding) |
BuildChannelFactory<TChannel>(Object[]) |
Compila la pila de generador de canales en el cliente que crea un tipo especificado de canal y eso satisface las características especificadas por una matriz de objetos. (Heredado de Binding) |
BuildChannelListener<TChannel>(BindingParameterCollection) |
Compila el agente de escucha del canal en el servicio que acepta un tipo especificado de canal y eso satisface las características especificadas por una colección de parámetros de enlace. (Heredado de Binding) |
BuildChannelListener<TChannel>(Object[]) |
Compila el agente de escucha del canal en el servicio que acepta un tipo especificado de canal y satisface las características especificadas. (Heredado de Binding) |
BuildChannelListener<TChannel>(Uri, BindingParameterCollection) |
Compila el agente de escucha del canal en el servicio que acepta un tipo especificado de canal y satisface las características especificadas. (Heredado de Binding) |
BuildChannelListener<TChannel>(Uri, Object[]) |
Compila el agente de escucha del canal en el servicio que acepta un tipo especificado de canal y satisface las características especificadas. (Heredado de Binding) |
BuildChannelListener<TChannel>(Uri, String, BindingParameterCollection) |
Compila el agente de escucha del canal en el servicio que acepta un tipo especificado de canal y satisface las características especificadas. (Heredado de Binding) |
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection) |
Compila el agente de escucha del canal en el servicio que acepta un tipo especificado de canal y satisface las características especificadas. (Heredado de Binding) |
BuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[]) |
Compila el agente de escucha del canal en el servicio que acepta un tipo especificado de canal y satisface las características especificadas. (Heredado de Binding) |
BuildChannelListener<TChannel>(Uri, String, Object[]) |
Compila el agente de escucha del canal en el servicio que acepta un tipo especificado de canal y satisface las características especificadas. (Heredado de Binding) |
CanBuildChannelFactory<TChannel>(BindingParameterCollection) |
Devuelve un valor que indica si el enlace actual puede compilar una pila de generador de canales en el cliente que satisfaga la colección especificada de parámetros de enlace. (Heredado de Binding) |
CanBuildChannelFactory<TChannel>(Object[]) |
Devuelve un valor que indica si el enlace actual puede compilar una pila de generador de canales en el cliente que satisfaga los requisitos especificados por una matriz de objetos. (Heredado de Binding) |
CanBuildChannelListener<TChannel>(BindingParameterCollection) |
Devuelve un valor que indica si el enlace actual puede compilar un agente de escucha de canal en el servicio que satisfaga la colección especificada de parámetros de enlace. (Heredado de Binding) |
CanBuildChannelListener<TChannel>(Object[]) |
Devuelve un valor que indica si el enlace actual puede compilar un agente de escucha de canal en el servicio que satisfaga la colección especificada de parámetros de enlace. (Heredado de Binding) |
CreateBindingElements() |
Devuelve una colección genérica de los elementos de enlace del enlace personalizado. |
Equals(Object) |
Determina si el objeto especificado es igual que el objeto actual. (Heredado de Object) |
GetHashCode() |
Sirve como la función hash predeterminada. (Heredado de Object) |
GetProperty<T>(BindingParameterCollection) |
Devuelve un objeto escrito solicitado de la capa adecuada en la pila de enlace si está presente. (Heredado de Binding) |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
ShouldSerializeName() |
Devuelve un valor si se debe serializar el nombre del enlace. (Heredado de Binding) |
ShouldSerializeNamespace() |
Devuelve un valor si se debe serializar el espacio de nombres. (Heredado de Binding) |
ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |