VENTAS: 1-800-867-1389

Clase NetTcpRelayBinding

Proporciona un enlace seguro y fiable, adecuado para la comunicación entre equipos.

Espacio de nombres:  Microsoft.ServiceBus
Ensamblado:  Microsoft.ServiceBus (en Microsoft.ServiceBus.dll)

public class NetTcpRelayBinding : NetTcpRelayBindingBase, 
	IBindingRuntimePreferences

El tipo NetTcpRelayBinding expone los siguientes miembros.

  NombreDescripción
Método públicoNetTcpRelayBinding()Inicializa una nueva instancia de la clase NetTcpRelayBinding.
Método públicoNetTcpRelayBinding(String)Inicializa una nueva instancia de la clase NetTcpRelayBinding con una configuración XML especificada.
Método públicoNetTcpRelayBinding(EndToEndSecurityMode, RelayClientAuthenticationType)Inicializa una nueva instancia de la clase NetTcpRelayBinding con el tipo de seguridad usado y la autenticación de cliente de retransmisión especificada.
Método públicoNetTcpRelayBinding(EndToEndSecurityMode, RelayClientAuthenticationType, Boolean)Inicializa una nueva instancia de la clase NetTcpRelayBinding con el tipo de seguridad usado, el tipo de autenticación de cliente y un valor que indica si las sesiones fiables están habilitadas explícitamente.
Método protegidoNetTcpRelayBinding(TcpRelayTransportBindingElement, BinaryMessageEncodingBindingElement, ReliableSessionBindingElement, NetTcpRelaySecurity)Inicializa una nueva instancia de la clase NetTcpRelayBinding usando el transporte especificado, la codificación, la información de sesión y la configuración de seguridad.
Arriba

  NombreDescripción
Propiedad públicaCloseTimeout (Se hereda de Binding.)
Propiedad públicaConnectionModeObtiene o establece el modo de conexión: Hybrid o Relayed. (Se hereda de NetTcpRelayBindingBase.)
Propiedad públicaEnvelopeVersionObtiene la versión de SOAP que se usa para mensajes procesados por este enlace. (Se hereda de NetTcpRelayBindingBase.)
Propiedad públicaHostNameComparisonModeObtiene o establece el modo de comparación usado en el nombre de host. (Se hereda de NetTcpRelayBindingBase.)
Propiedad públicaIsDynamicObtiene o establece si el enlazado de retransmisión es dinámico. (Se hereda de NetTcpRelayBindingBase.)
Propiedad públicaListenBacklogObtiene o establece el número máximo de solicitudes de conexión en cola que pueden estar pendientes. (Se hereda de NetTcpRelayBindingBase.)
Propiedad públicaMaxBufferPoolSizeObtiene o establece el tamaño máximo permitido para un grupo de búferes que almacena mensajes procesados por el enlace. (Se hereda de NetTcpRelayBindingBase.)
Propiedad públicaMaxBufferSizeObtiene o establece un valor que especifica el tamaño máximo del búfer usado para almacenar mensajes en la memoria. (Se hereda de NetTcpRelayBindingBase.)
Propiedad públicaMaxConnectionsObtiene o establece un valor que controla el número máximo de conexiones que se van a agrupar para la reutilización posterior en el cliente y el número máximo de conexiones permitidas cuyo envío está pendiente en el servidor. (Se hereda de NetTcpRelayBindingBase.)
Propiedad públicaMaxReceivedMessageSizeObtiene o establece el tamaño máximo para un mensaje recibido que es procesado por el enlace. (Se hereda de NetTcpRelayBindingBase.)
Propiedad protegidaMessageSecurityVersionObtiene la versión de seguridad de mensajes. (Se hereda de NetTcpRelayBindingBase.)
Propiedad públicaMessageVersion (Se hereda de Binding.)
Propiedad públicaName (Se hereda de Binding.)
Propiedad públicaNamespace (Se hereda de Binding.)
Propiedad públicaOpenTimeout (Se hereda de Binding.)
Propiedad públicaReaderQuotasObtiene o establece restricciones en la complejidad de mensajes de SOAP que se pueden procesar por extremos configurados con este enlace. Esta propiedad no puede ser null. (Se hereda de NetTcpRelayBindingBase.)
Propiedad públicaReceiveTimeout (Se hereda de Binding.)
Propiedad públicaReliableSessionObtiene un objeto que indica si hay establecida una sesión fiable entre los extremos del canal de Windows Azure Service Bus.
Propiedad públicaSchemeObtiene el esquema de URI para el transporte. (Se hereda de NetTcpRelayBindingBase.)
Propiedad públicaSecurityObtiene un objeto que especifica el tipo de seguridad usado con servicios configurados con este enlace. (Se hereda de NetTcpRelayBindingBase.)
Propiedad públicaSendTimeout (Se hereda de Binding.)
Propiedad públicaTransferModeObtiene o establece un valor que indica si el servicio configurado con el enlace utiliza los modos de stream o búfer (o ambos) de transferencia de mensaje. (Se hereda de NetTcpRelayBindingBase.)
Arriba

  NombreDescripción
Método protegidoApplyConfigurationAplica la configuración del elemento de configuración que corresponde al nombre especificado a la instancia actual de este elemento de enlace. (Invalida NetTcpRelayBindingBase.ApplyConfiguration(String).)
Método públicoBuildChannelFactory<TChannel>(Object[]) (Se hereda de Binding.)
Método públicoBuildChannelFactory<TChannel>(BindingParameterCollection) (Se hereda de Binding.)
Método públicoBuildChannelListener<TChannel>(Object[]) (Se hereda de Binding.)
Método públicoBuildChannelListener<TChannel>(BindingParameterCollection) (Se hereda de Binding.)
Método públicoBuildChannelListener<TChannel>(Uri, Object[]) (Se hereda de Binding.)
Método públicoBuildChannelListener<TChannel>(Uri, BindingParameterCollection) (Se hereda de Binding.)
Método públicoBuildChannelListener<TChannel>(Uri, String, Object[]) (Se hereda de Binding.)
Método públicoBuildChannelListener<TChannel>(Uri, String, BindingParameterCollection) (Se hereda de Binding.)
Método públicoBuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[]) (Se hereda de Binding.)
Método públicoBuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection) (Se hereda de Binding.)
Método públicoCanBuildChannelFactory<TChannel>(Object[]) (Se hereda de Binding.)
Método públicoCanBuildChannelFactory<TChannel>(BindingParameterCollection) (Se hereda de Binding.)
Método públicoCanBuildChannelListener<TChannel>(Object[]) (Se hereda de Binding.)
Método públicoCanBuildChannelListener<TChannel>(BindingParameterCollection) (Se hereda de Binding.)
Método públicoCreateBindingElementsCrea una colección con los elementos de enlace para el enlace. (Invalida NetTcpRelayBindingBase.CreateBindingElements().)
Método protegidoCreateMessageSecurityCrea el token de seguridad de mensajes para la instancia actual. (Invalida NetTcpRelayBindingBase.CreateMessageSecurity().)
Método públicoEquals (Se hereda de Object.)
Método protegidoFinalize (Se hereda de Object.)
Método públicoGetHashCode (Se hereda de Object.)
Método públicoGetProperty<T> (Se hereda de Binding.)
Método públicoGetType (Se hereda de Object.)
Método protegidoIsBindingElementsMatch(TcpRelayTransportBindingElement, BinaryMessageEncodingBindingElement)Determina si los elementos de enlace especificados coinciden con los valores predeterminados de los elementos de enlace en la instancia actual. (Se hereda de NetTcpRelayBindingBase.)
Método protegidoIsBindingElementsMatch(TcpRelayTransportBindingElement, BinaryMessageEncodingBindingElement, ReliableSessionBindingElement)Devuelve un valor que determina si los objetos especificados tienen elementos de enlace coincidentes.
Método protegidoMemberwiseClone (Se hereda de Object.)
Método públicoShouldSerializeName (Se hereda de Binding.)
Método públicoShouldSerializeNamespace (Se hereda de Binding.)
Método públicoToString (Se hereda de Object.)
Arriba

  NombreDescripción
Campo protegidoencodingElemento de codificación para la instancia actual. Junto con la configuración de seguridad y de transporte, la codificación representa una de las tres propiedades esenciales de un enlace. (Se hereda de NetTcpRelayBindingBase.)
Campo protegidotransportElemento de transporte para la instancia actual. Junto con la codificación y la seguridad, la configuración de transporte representa una de las tres propiedades esenciales de un enlace. (Se hereda de NetTcpRelayBindingBase.)
Arriba

  NombreDescripción
Implementación de interfaces explícitasPropiedad privadaIBindingRuntimePreferences.ReceiveSynchronouslyObtiene un valor que indica si las solicitudes entrantes se administran sincrónica o asincrónicamente. (Se hereda de NetTcpRelayBindingBase.)
Arriba

Windows Azure Service Bus supports only Full Trust code access security.

NotaNota

By default, NetTcpRelayBinding uses Transport Security.

NetTcpRelayBinding supports two connection modes, specified by the ConnectionMode property: Hybrid and Relayed. In Hybrid connection mode, communication is relayed through the Service Bus infrastructure while the client and service endpoints negotiate a direct socket connection to each other. In Relayed mode, all communication is relayed through the Service Bus cloud.

The NetTcpRelayBinding generates a run-time communication stack by default, which uses transport security, TCP for message delivery, and a binary message encoding.

The default configuration for the NetTcpRelayBinding is faster than the configuration provided by the WSHttpRelayBinding. The security behavior is configurable using the optional securityMode parameter in the constructor. The use of WS-ReliableMessaging is configurable using the optional reliableSessionEnabled parameter. However, reliable messaging is disabled by default.

Services using the NetTcpRelayBinding register their endpoints on the Windows Azure Service Bus using the "sb" URI scheme. Clients and service listeners created using this binding each use a pair of TCP socket connections to the cloud-based listener. The SSL-protected control channel uses outbound TCP port 828, while the data channel is using outbound port 818.

Bindings are generally instantiated and configured at the beginning of both a service and client application, as they are a requirement for connecting to the Windows Azure Service Bus. For more information, see Building a Service for the AppFabric Service Bus, and Building an AppFabric Service Bus Client Application.

The following example shows how to define and use NetTcpRelayBinding with the default configuration for a service and client in an application configuration file.

<system.serviceModel>

  <bindings>
    <!-- Application Binding -->
    <netTcpRelayBinding>
      <binding name="default" />
    </netTcpRelayBinding>
  </bindings>

  <client>
    <endpoint name="RelayEndpoint"
              contract="Microsoft.ServiceBus.Samples.IMyContract"
              binding="netTcpRelayBinding"
              bindingConfiguration="default"
              behaviorConfiguration="ReplaceWithEndpointBehaviorName"
              address="ReplaceWithEndpointAddress" />
  </client>
  
  <services>
    <service name="Microsoft.ServiceBus.Samples.MyService">
      <!-- Keep address empty to use host base address, or -->
      <!-- replace with endpoint address. -->
      <endpoint name="RelayEndpoint"
                contract="Microsoft.ServiceBus.Samples.IMyContract"
                binding="netTcpRelayBinding"
                bindingConfiguration="default"                
                behaviorConfiguration="ReplaceWithEndpointBehaviorName"
                address="" />
    </service>
  </services>

  <behaviors>
    <endpointBehaviors>
      <!-- Add endpoint behavior here. -->
    </endpointBehaviors>
  </behaviors>

</system.serviceModel>

The following example is similar to the previous example except that it defines a custom configuration for NetTcpRelayBinding. It turns client authentication off, which means that the client is not required to present a security token to the Windows Azure Service Bus.

<system.serviceModel>

  <bindings>
    <!-- Application Binding -->
    <netTcpRelayBinding>
      <binding name="customBinding">
        <!-- Turn off client authentication -->
        <security relayClientAuthenticationType="None" />
    </netTcpRelayBinding>
  </bindings>

  <client>
    <!-- No behavior configuration is added to this endpoint as the client does not need to authenticate. -->
    <endpoint name="RelayEndpoint"
              contract="Microsoft.ServiceBus.Samples.IMyContract"
              binding="netTcpRelayBinding"
              bindingConfiguration="customBinding"
              address="ReplaceWithEndpointAddress" />
  </client>
  
  <services>
    <service name="Microsoft.ServiceBus.Samples.MyService">
      <!-- Keep address empty to use host base address, or -->
      <!-- replace with endpoint address. -->
      <endpoint name="RelayEndpoint"
                contract="Microsoft.ServiceBus.Samples.IMyContract"
                binding="netTcpRelayBinding"
                bindingConfiguration="customBinding"
                behaviorConfiguration="ReplaceWithEndpointBehaviorName"
                address="" />
    </service>
  </services>

  <behaviors>
    <endpointBehaviors>
      <!-- Add endpoint behavior here. -->
    </endpointBehaviors>
  </behaviors>

</system.serviceModel>

The following example illustrates the use of NetTcpRelayBinding programmatically with its default settings. The default settings of NetTcpRelayBinding for the end-to-end security mode and client authentication type are EndToEndSecurityMode.Transport and RelayClientAuthenticationType.RelayAccessToken respectively. For a complete working sample that uses the NetTcpRelayBinding, check out the samples in the SDK install directory under \Samples\ServiceBus\ExploringFeatures\Bindings\NetTcp.

This example starts by specifying the credentials the service and the client are expected to send to the Windows Azure Service Bus by creating an endpoint behavior. Next, it creates the binding, the service address, and starts the service host. After starting the service, a channel factory is created for the IMyChannel channel type that is used to generate a client channel to the service. Finally, the client channel is opened.

// Configure the credentials for the service and client endpoints through an endpoint behavior.
TransportClientEndpointBehavior relayCredentials = new TransportClientEndpointBehavior();
relayCredentials.CredentialType = TransportClientCredentialType.SharedSecret;
relayCredentials.Credentials.SharedSecret.IssuerName = issuerName;
relayCredentials.Credentials.SharedSecret.IssuerSecret = issuerSecret;

// Create the binding with default settings.
NetTcpRelayBinding binding = new NetTcpRelayBinding();        

// Get the service URI.
Uri serviceAddress = ServiceBusEnvironment.CreateServiceUri("sb", serviceNamespace,
       String.Format(CultureInfo.InvariantCulture, "{0}/MyService/", session));

// Create the service host.
ServiceHost host = new ServiceHost(typeof(MyService), serviceAddress);
// Add the service endpoint with the NetTcpRelayBinding binding.
host.AddServiceEndpoint(typeof(IMyContract), binding, serviceAddress);
// Add the credentials through the endpoint behavior.
host.Description.Endpoints[0].Behaviors.Add(relayCredentials);
// Start the service.
host.Open();

// Create a channel factory for the specified channel type.
// This channel factory is used to create client channels to the service. 
// Each client channel the channel factory creates is configured to use the 
// NetTcpRelayBinding that is passed to the constructor of the channel factory.
ChannelFactory<IMyChannel> channelFactory = new ChannelFactory<IMyChannel>(
    binding, new EndpointAddress(serviceAddress));
channelFactory.Endpoint.Behaviors.Add(relayCredentials);

// Create and open the client channel.
IMyChannel channel = channelFactory.CreateChannel();
channel.Open();

The following example is similar to the previous example except that it uses NetTcpRelayBinding with custom settings. It turns off client authentication, which means that the client is not required to present a security token to the Windows Azure Service Bus. Since the client is not required to authenticate, no endpoint behavior for the credentials is added to the client channel. Note that the behavior is still added to the service endpoint because the service application always authenticates with the Windows Azure Service Bus.

// Configure the credentials for the service and client endpoints through an endpoint behavior.
TransportClientEndpointBehavior relayCredentials = new TransportClientEndpointBehavior();
relayCredentials.CredentialType = TransportClientCredentialType.SharedSecret;
relayCredentials.Credentials.SharedSecret.IssuerName = issuerName;
relayCredentials.Credentials.SharedSecret.IssuerSecret = issuerSecret;

// Create the binding with custom settings.
NetTcpRelayBinding binding = new NetTcpRelayBinding();        
// The client is not required to present a security token to the AppFabric Service Bus.
binding.Security.RelayClientAuthenticationType = RelayClientAuthenticationType.None;

// Get the service URI.
Uri serviceAddress = ServiceBusEnvironment.CreateServiceUri("sb", serviceNamespace,
       String.Format(CultureInfo.InvariantCulture, "{0}/MyService/", session));

// Create the service host.
ServiceHost host = new ServiceHost(typeof(MyService), serviceAddress);
// Add the service endpoint with the NetTcpRelayBinding binding.
host.AddServiceEndpoint(typeof(IMyContract), binding, serviceAddress);
// Add the credentials through the endpoint behavior.
host.Description.Endpoints[0].Behaviors.Add(relayCredentials);
// Start the service.
host.Open();

// Create a channel factory for the specified channel type.
// This channel factory is used to create client channels to the service. 
// Each client channel the channel factory creates is configured to use the 
// NetTcpRelayBinding that is passed to the constructor of the channel factory.
ChannelFactory<IMyChannel> channelFactory = new ChannelFactory<IMyChannel>(
    binding, new EndpointAddress(serviceAddress));

// Create and open the client channel.
IMyChannel channel = channelFactory.CreateChannel();
channel.Open();

Cualquier miembro público static (Shared en Visual Basic) de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.
¿Te ha resultado útil?
(Caracteres restantes: 1500)
Gracias por sus comentarios

Adiciones de comunidad

AGREGAR
Mostrar:
© 2015 Microsoft