Esporta (0) Stampa
Espandi tutto

Classe NetTcpRelayBinding

Fornisce un'associazione sicura e affidabile, adatta per le comunicazioni tra computer.

Spazio dei nomi  Microsoft.ServiceBus
Assembly:  Microsoft.ServiceBus (in Microsoft.ServiceBus.dll)

public class NetTcpRelayBinding : NetTcpRelayBindingBase, 
	IBindingRuntimePreferences

Nel tipo NetTcpRelayBinding sono esposti i membri seguenti.

  NomeDescrizione
Metodo pubblicoNetTcpRelayBinding()Inizializza una nuova istanza della classe NetTcpRelayBinding.
Metodo pubblicoNetTcpRelayBinding(String)Inizializza una nuova istanza della classe NetTcpRelayBinding con una configurazione XML specificata.
Metodo pubblicoNetTcpRelayBinding(EndToEndSecurityMode, RelayClientAuthenticationType)Inizializza una nuova istanza della classe NetTcpRelayBinding con il tipo di sicurezza utilizzato e l'autenticazione client di inoltro specificata.
Metodo pubblicoNetTcpRelayBinding(EndToEndSecurityMode, RelayClientAuthenticationType, Boolean)Inizializza una nuova istanza della classe NetTcpRelayBinding con il tipo di sicurezza utilizzato, il tipo di autenticazione client e un valore che indica se le sessioni affidabili sono abilitate esplicitamente.
Metodo protettoNetTcpRelayBinding(TcpRelayTransportBindingElement, BinaryMessageEncodingBindingElement, ReliableSessionBindingElement, NetTcpRelaySecurity)Inizializza una nuova istanza della classe NetTcpRelayBinding utilizzando il trasporto, la codifica, le informazioni sulle sessioni e le impostazioni di sicurezza specificati.
In alto

  NomeDescrizione
Proprietà pubblicaCloseTimeout Ereditato da Binding.
Proprietà pubblicaConnectionModeOttiene o imposta la modalità di connessione Hybrid o Relayed. Ereditato da NetTcpRelayBindingBase.
Proprietà pubblicaEnvelopeVersionOttiene la versione di SOAP utilizzata per i messaggi elaborati dall'associazione corrente. Ereditato da NetTcpRelayBindingBase.
Proprietà pubblicaHostNameComparisonModeOttiene o imposta la modalità di confronto utilizzata nel nome host. Ereditato da NetTcpRelayBindingBase.
Proprietà pubblicaIsDynamicOttiene o imposta un valore che indica se il binding di inoltro è dinamico. Ereditato da NetTcpRelayBindingBase.
Proprietà pubblicaListenBacklogOttiene o imposta il numero massimo di richieste di connessione in coda che possono essere in sospeso. Ereditato da NetTcpRelayBindingBase.
Proprietà pubblicaMaxBufferPoolSizeOttiene o imposta la dimensione massima consentita per un pool di buffer in cui vengono archiviati i messaggi elaborati dall'associazione. Ereditato da NetTcpRelayBindingBase.
Proprietà pubblicaMaxBufferSizeOttiene o imposta un valore che specifica la dimensione massima del buffer utilizzato per archiviare i messaggi nella memoria. Ereditato da NetTcpRelayBindingBase.
Proprietà pubblicaMaxConnectionsOttiene o imposta un valore che controlla nel client il numero massimo di connessioni da inserire in un pool per il successivo riutilizzo e nel server il numero massimo di connessioni consentite in attesa di essere recapitate. Ereditato da NetTcpRelayBindingBase.
Proprietà pubblicaMaxReceivedMessageSizeOttiene o imposta la dimensione massima consentita per un messaggio ricevuto elaborato dall'associazione. Ereditato da NetTcpRelayBindingBase.
Proprietà protettaMessageSecurityVersionOttiene la versione di sicurezza messaggi. Ereditato da NetTcpRelayBindingBase.
Proprietà pubblicaMessageVersion Ereditato da Binding.
Proprietà pubblicaName Ereditato da Binding.
Proprietà pubblicaNamespace Ereditato da Binding.
Proprietà pubblicaOpenTimeout Ereditato da Binding.
Proprietà pubblicaReaderQuotasOttiene o imposta i vincoli sulla complessità dei messaggi SOAP che possono essere elaborati dagli endpoint configurati con l'associazione corrente. Questa proprietà non può essere null. Ereditato da NetTcpRelayBindingBase.
Proprietà pubblicaReceiveTimeout Ereditato da Binding.
Proprietà pubblicaReliableSessionOttiene un oggetto che indica se è stata stabilita una sessione affidabile tra gli endpoint di canale di Microsoft Azure Service Bus.
Proprietà pubblicaSchemeOttiene lo schema URI per il trasporto. Ereditato da NetTcpRelayBindingBase.
Proprietà pubblicaSecurityOttiene un oggetto che specifica il tipo di sicurezza utilizzato con i servizi configurati con l'associazione corrente. Ereditato da NetTcpRelayBindingBase.
Proprietà pubblicaSendTimeout Ereditato da Binding.
Proprietà pubblicaTransferModeOttiene o imposta un valore che indica se il servizio configurato con l'associazione utilizza modalità di trasferimento messaggi con flusso o con memorizzazione nel buffer (o entrambe). Ereditato da NetTcpRelayBindingBase.
In alto

  NomeDescrizione
Metodo protettoApplyConfigurationApplica le impostazioni dell'elemento di configurazione corrispondente al nome specificato all'istanza corrente dell'elemento di associazione. Esegue l'override di NetTcpRelayBindingBase.ApplyConfiguration(String).
Metodo pubblicoBuildChannelFactory<TChannel>(Object[]) Ereditato da Binding.
Metodo pubblicoBuildChannelFactory<TChannel>(BindingParameterCollection) Ereditato da Binding.
Metodo pubblicoBuildChannelListener<TChannel>(Object[]) Ereditato da Binding.
Metodo pubblicoBuildChannelListener<TChannel>(BindingParameterCollection) Ereditato da Binding.
Metodo pubblicoBuildChannelListener<TChannel>(Uri, Object[]) Ereditato da Binding.
Metodo pubblicoBuildChannelListener<TChannel>(Uri, BindingParameterCollection) Ereditato da Binding.
Metodo pubblicoBuildChannelListener<TChannel>(Uri, String, Object[]) Ereditato da Binding.
Metodo pubblicoBuildChannelListener<TChannel>(Uri, String, BindingParameterCollection) Ereditato da Binding.
Metodo pubblicoBuildChannelListener<TChannel>(Uri, String, ListenUriMode, Object[]) Ereditato da Binding.
Metodo pubblicoBuildChannelListener<TChannel>(Uri, String, ListenUriMode, BindingParameterCollection) Ereditato da Binding.
Metodo pubblicoCanBuildChannelFactory<TChannel>(Object[]) Ereditato da Binding.
Metodo pubblicoCanBuildChannelFactory<TChannel>(BindingParameterCollection) Ereditato da Binding.
Metodo pubblicoCanBuildChannelListener<TChannel>(Object[]) Ereditato da Binding.
Metodo pubblicoCanBuildChannelListener<TChannel>(BindingParameterCollection) Ereditato da Binding.
Metodo pubblicoCreateBindingElementsCrea una raccolta con gli elementi necessari per l'associazione. Esegue l'override di NetTcpRelayBindingBase.CreateBindingElements().
Metodo protettoCreateMessageSecurityCrea il token di sicurezza messaggi per l'istanza corrente. Esegue l'override di NetTcpRelayBindingBase.CreateMessageSecurity().
Metodo pubblicoEquals Ereditato da Object.
Metodo protettoFinalize Ereditato da Object.
Metodo pubblicoGetHashCode Ereditato da Object.
Metodo pubblicoGetProperty<T> Ereditato da Binding.
Metodo pubblicoGetType Ereditato da Object.
Metodo protettoIsBindingElementsMatch(TcpRelayTransportBindingElement, BinaryMessageEncodingBindingElement)Determina se gli elementi di associazione specificati corrispondono ai valori predefiniti degli elementi di associazione presenti nell'istanza corrente. Ereditato da NetTcpRelayBindingBase.
Metodo protettoIsBindingElementsMatch(TcpRelayTransportBindingElement, BinaryMessageEncodingBindingElement, ReliableSessionBindingElement)Restituisce un valore che determina se agli oggetti specificati corrispondono elementi di associazione.
Metodo protettoMemberwiseClone Ereditato da Object.
Metodo pubblicoShouldSerializeName Ereditato da Binding.
Metodo pubblicoShouldSerializeNamespace Ereditato da Binding.
Metodo pubblicoToString Ereditato da Object.
In alto

  NomeDescrizione
Campo protettoencodingElemento di codifica per l'istanza corrente. Insieme alle impostazioni di sicurezza e di trasporto, la codifica costituisce una delle tre principali proprietà di un'associazione. Ereditato da NetTcpRelayBindingBase.
Campo protettotransportElemento di trasporto per l'istanza corrente. Insieme alla codifica e alla sicurezza, l'impostazione di trasporto costituisce una delle principali proprietà di un'associazione. Ereditato da NetTcpRelayBindingBase.
In alto

  NomeDescrizione
Implementazione esplicita dell'interfacciaProprietà privataIBindingRuntimePreferences.ReceiveSynchronouslyOttiene un valore che indica se le richieste in ingresso vengono gestite in modo sincrono o asincrono. Ereditato da NetTcpRelayBindingBase.
In alto

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

I membri static (Shared in Visual Basic) pubblici di questo tipo sono affidabili. Non è invece garantita la sicurezza dei membri dell'istanza.

Aggiunte alla community

AGGIUNGI
Mostra:
© 2015 Microsoft