Exportar (0) Imprimir
Expandir Tudo

Classe NetTcpRelayBinding

Fornece uma associação confiável e segura para comunicação entre computadores.

Namespace:  Microsoft.ServiceBus
Assembly:  Microsoft.ServiceBus (em Microsoft.ServiceBus.dll)

public class NetTcpRelayBinding : NetTcpRelayBindingBase, 
	IBindingRuntimePreferences

O tipo NetTcpRelayBinding expõe os membros a seguir.

  NomeDescrição
Método públicoNetTcpRelayBinding()()()()Inicializa uma nova instância da classe NetTcpRelayBinding.
Método públicoNetTcpRelayBinding(String)Inicializa uma nova instância da classe NetTcpRelayBinding com uma configuração XML especificada.
Método públicoNetTcpRelayBinding(EndToEndSecurityMode, RelayClientAuthenticationType)Inicializa uma nova instância da classe NetTcpRelayBinding com o tipo de segurança usado e a autenticação de cliente de retransmissão especificada.
Método públicoNetTcpRelayBinding(EndToEndSecurityMode, RelayClientAuthenticationType, Boolean)Inicializa uma nova instância da classe NetTcpRelayBinding com o tipo de segurança usado, o tipo de autenticação do cliente e um valor que indica se as sessões confiáveis são habilitadas explicitamente.
Método protegidoNetTcpRelayBinding(TcpRelayTransportBindingElement, BinaryMessageEncodingBindingElement, ReliableSessionBindingElement, NetTcpRelaySecurity)Inicializa uma nova instância da classe NetTcpRelayBinding usando as configurações de segurança, informações da sessão, codificação e o transporte especificados.
Início

  NomeDescrição
Propriedade públicaCloseTimeout (Herdado de Binding.)
Propriedade públicaConnectionModeObtém ou define o modo de conexão: Hybrid ou Relayed. (Herdado de NetTcpRelayBindingBase.)
Propriedade públicaEnvelopeVersionObtém a versão do SOAP usada para mensagens processadas por essa associação. (Herdado de NetTcpRelayBindingBase.)
Propriedade públicaHostNameComparisonModeObtém ou define o modo de comparação usado no nome do host. (Herdado de NetTcpRelayBindingBase.)
Propriedade públicaIsDynamicObtém ou define se a associação de retransmissão é dinâmica. (Herdado de NetTcpRelayBindingBase.)
Propriedade públicaListenBacklogObtém ou define a quantidade máxima de solicitações de conexão em fila que podem estar pendentes. (Herdado de NetTcpRelayBindingBase.)
Propriedade públicaMaxBufferPoolSizeObtém ou define o tamanho máximo permitido para um pool de buffer que armazena mensagens processadas pela associação. (Herdado de NetTcpRelayBindingBase.)
Propriedade públicaMaxBufferSizeObtém ou define um valor que especifica o tamanho máximo do buffer usado para armazenar mensagens na memória. (Herdado de NetTcpRelayBindingBase.)
Propriedade públicaMaxConnectionsObtém ou define um valor que controla a quantidade máxima de conexões a serem colocadas em pool para reutilização posterior no cliente e a quantidade máxima de associações permitidas para ficarem com expedição pendente no servidor. (Herdado de NetTcpRelayBindingBase.)
Propriedade públicaMaxReceivedMessageSizeObtém ou define o tamanho máximo para uma mensagem recebida processada pela associação. (Herdado de NetTcpRelayBindingBase.)
Propriedade protegidaMessageSecurityVersionObtém a versão de segurança da mensagem. (Herdado de NetTcpRelayBindingBase.)
Propriedade públicaMessageVersion (Herdado de Binding.)
Propriedade públicaName (Herdado de Binding.)
Propriedade públicaNamespace (Herdado de Binding.)
Propriedade públicaOpenTimeout (Herdado de Binding.)
Propriedade públicaReaderQuotasObtém ou define restrições à complexidade das mensagens SOAP que podem ser processadas ​​por pontos de extremidades configurados com esta associação. Essa propriedade não pode ser nula. (Herdado de NetTcpRelayBindingBase.)
Propriedade públicaReceiveTimeout (Herdado de Binding.)
Propriedade públicaReliableSessionObtém um objeto que indica se uma sessão confiável é estabelecida entre os pontos de extremidade do canal do Service Bus do Windows Azure.
Propriedade públicaSchemeObtém o esquema de URI do transporte. (Herdado de NetTcpRelayBindingBase.)
Propriedade públicaSecurityObtém um objeto que especifica o tipo de segurança usado com serviços configurados com essa associação. (Herdado de NetTcpRelayBindingBase.)
Propriedade públicaSendTimeout (Herdado de Binding.)
Propriedade públicaTransferModeObtém ou define um valor que indica se o serviço configurado com a associação usa modos de transmissão ou de armazenamento em buffer (ou ambos) para a transferência da mensagem. (Herdado de NetTcpRelayBindingBase.)
Início

  NomeDescrição
Método protegidoApplyConfigurationAplica as configurações do elemento de configuração que corresponde ao nome especificado para a instância atual deste elemento de associação. (Substitui NetTcpRelayBindingBase..::..ApplyConfiguration(String).)
Método públicoBuildChannelFactory<(Of <<'(TChannel>)>>)(array<Object>[]()[][]) (Herdado de Binding.)
Método públicoBuildChannelFactory<(Of <<'(TChannel>)>>)(BindingParameterCollection) (Herdado de Binding.)
Método públicoBuildChannelListener<(Of <<'(TChannel>)>>)(array<Object>[]()[][]) (Herdado de Binding.)
Método públicoBuildChannelListener<(Of <<'(TChannel>)>>)(BindingParameterCollection) (Herdado de Binding.)
Método públicoBuildChannelListener<(Of <<'(TChannel>)>>)(Uri, array<Object>[]()[][]) (Herdado de Binding.)
Método públicoBuildChannelListener<(Of <<'(TChannel>)>>)(Uri, BindingParameterCollection) (Herdado de Binding.)
Método públicoBuildChannelListener<(Of <<'(TChannel>)>>)(Uri, String, array<Object>[]()[][]) (Herdado de Binding.)
Método públicoBuildChannelListener<(Of <<'(TChannel>)>>)(Uri, String, BindingParameterCollection) (Herdado de Binding.)
Método públicoBuildChannelListener<(Of <<'(TChannel>)>>)(Uri, String, ListenUriMode, array<Object>[]()[][]) (Herdado de Binding.)
Método públicoBuildChannelListener<(Of <<'(TChannel>)>>)(Uri, String, ListenUriMode, BindingParameterCollection) (Herdado de Binding.)
Método públicoCanBuildChannelFactory<(Of <<'(TChannel>)>>)(array<Object>[]()[][]) (Herdado de Binding.)
Método públicoCanBuildChannelFactory<(Of <<'(TChannel>)>>)(BindingParameterCollection) (Herdado de Binding.)
Método públicoCanBuildChannelListener<(Of <<'(TChannel>)>>)(array<Object>[]()[][]) (Herdado de Binding.)
Método públicoCanBuildChannelListener<(Of <<'(TChannel>)>>)(BindingParameterCollection) (Herdado de Binding.)
Método públicoCreateBindingElementsCria uma coleção com os elementos de associação para a associação. (Substitui NetTcpRelayBindingBase..::..CreateBindingElements()()()().)
Método protegidoCreateMessageSecurityCria o token de segurança da mensagem para a instância atual. (Substitui NetTcpRelayBindingBase..::..CreateMessageSecurity()()()().)
Método públicoEquals (Herdado de Object.)
Método protegidoFinalize (Herdado de Object.)
Método públicoGetHashCode (Herdado de Object.)
Método públicoGetProperty<(Of <<'(T>)>>) (Herdado de Binding.)
Método públicoGetType (Herdado de Object.)
Método protegidoIsBindingElementsMatch(TcpRelayTransportBindingElement, BinaryMessageEncodingBindingElement)Determina se os elementos de associação especificados correspondem aos valores padrão dos elementos de associação na instância atual. (Herdado de NetTcpRelayBindingBase.)
Método protegidoIsBindingElementsMatch(TcpRelayTransportBindingElement, BinaryMessageEncodingBindingElement, ReliableSessionBindingElement)Retorna um valor que determina se os objetos especificados têm elementos de associação correspondentes.
Método protegidoMemberwiseClone (Herdado de Object.)
Método públicoShouldSerializeName (Herdado de Binding.)
Método públicoShouldSerializeNamespace (Herdado de Binding.)
Método públicoToString (Herdado de Object.)
Início

  NomeDescrição
Campo protegidoencodingO elemento de codificação da instância atual. Junto com as configurações de segurança e transporte, a codificação forma as três propriedades básicas de uma associação. (Herdado de NetTcpRelayBindingBase.)
Campo protegidotransportO elemento de transporte da instância atual. Junto com a codificação e a segurança, a configuração de transporte forma as propriedades básicas de uma associação. (Herdado de NetTcpRelayBindingBase.)
Início

  NomeDescrição
Implementações de interfaces explícitasPropriedade privadaIBindingRuntimePreferences..::..ReceiveSynchronouslyObtém um valor que indica se as solicitações de entrada são tratadas de forma síncrona ou assíncrona. (Herdado de NetTcpRelayBindingBase.)
Início

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

ObservaçãoObservação

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

Qualquer membro público static (Shared no Visual Basic) desse tipo é seguro para threads. Não há garantia de que qualquer membro de instância seja seguro para threads.

Contribuições da comunidade

ADICIONAR
Mostrar:
© 2014 Microsoft