(0) exportieren Drucken
Alle erweitern

NetTcpRelayBinding-Klasse

Stellt eine sichere, zuverlässige Bindung zur Verfügung, die für computerübergreifende Kommunikation geeignet ist.

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

public class NetTcpRelayBinding : NetTcpRelayBindingBase, 
	IBindingRuntimePreferences

Der NetTcpRelayBinding-Typ macht folgende Elemente verfügbar.

  NameBeschreibung
Öffentliche MethodeNetTcpRelayBinding()()()()Initialisiert eine neue Instanz der NetTcpRelayBinding-Klasse.
Öffentliche MethodeNetTcpRelayBinding(String)Initialisiert mithilfe einer angegebenen XML-Konfiguration eine neue Instanz der NetTcpRelayBinding-Klasse.
Öffentliche MethodeNetTcpRelayBinding(EndToEndSecurityMode, RelayClientAuthenticationType)Initialisiert eine neue Instanz der NetTcpRelayBinding-Klasse mithilfe des angegebenen Sicherheits- und Relayclient-Authentifizierungstyps.
Öffentliche MethodeNetTcpRelayBinding(EndToEndSecurityMode, RelayClientAuthenticationType, Boolean)Initialisiert eine neue Instanz der NetTcpRelayBinding-Klasse mit dem verwendeten Sicherheitstyp, dem Clientauthentifizierungstyp und einem Wert, der angibt, ob zuverlässige Sitzungen ausdrücklich aktiviert sind.
Geschützte MethodeNetTcpRelayBinding(TcpRelayTransportBindingElement, BinaryMessageEncodingBindingElement, ReliableSessionBindingElement, NetTcpRelaySecurity)Initialisiert mithilfe der angegebenen Transporteinstellungen, Codierungseinstellungen, Sitzungsinformationen und Sicherheitseinstellungen eine neue Instanz der NetTcpRelayBinding-Klasse.
Zum Anfang

  NameBeschreibung
Öffentliche EigenschaftCloseTimeout (Geerbt von Binding.)
Öffentliche EigenschaftConnectionModeRuft den Verbindungsmodus ab oder legt diesen fest: Hybrid oder Relayed. (Geerbt von NetTcpRelayBindingBase.)
Öffentliche EigenschaftEnvelopeVersionRuft die Version von SOAP ab, die für Nachrichten verwendet wird, die von dieser Bindung verarbeitet werden. (Geerbt von NetTcpRelayBindingBase.)
Öffentliche EigenschaftHostNameComparisonModeRuft den für den Hostnamen verwendeten Vergleichsmodus ab bzw. legt diesen fest. (Geerbt von NetTcpRelayBindingBase.)
Öffentliche EigenschaftIsDynamicRuft ab oder legt fest, ob die Relaybindung dynamisch ist. (Geerbt von NetTcpRelayBindingBase.)
Öffentliche EigenschaftListenBacklogRuft die maximale Anzahl von Verbindungsanforderungen in der Warteschlange ab, die ausstehen können, oder legt diese Anzahl fest. (Geerbt von NetTcpRelayBindingBase.)
Öffentliche EigenschaftMaxBufferPoolSizeRuft die maximal zulässige Größe für einen Pufferpool ab, der von der Bindung verarbeitete Nachrichten speichert, oder legt sie fest. (Geerbt von NetTcpRelayBindingBase.)
Öffentliche EigenschaftMaxBufferSizeRuft einen Wert ab, der die maximale Größe des Puffers angibt, der zum Speichern von Nachrichten im Arbeitsspeicher verwendet wird, oder legt diesen Wert fest. (Geerbt von NetTcpRelayBindingBase.)
Öffentliche EigenschaftMaxConnectionsRuft einen Wert ab, der die maximale Anzahl von Verbindungen steuert, die für die nachfolgende Wiederverwendung auf dem Client in einem Pool zusammengefasst werden, sowie die maximale Anzahl von Verbindungen, für die auf dem Server die Verteilung ausstehen darf, oder legt diesen Wert fest. (Geerbt von NetTcpRelayBindingBase.)
Öffentliche EigenschaftMaxReceivedMessageSizeRuft die maximale Größe einer empfangenen Nachricht ab, die von der Bindung verarbeitet wird, oder legt sie fest. (Geerbt von NetTcpRelayBindingBase.)
Geschützte EigenschaftMessageSecurityVersionRuft die Nachrichtensicherheitsversion ab. (Geerbt von NetTcpRelayBindingBase.)
Öffentliche EigenschaftMessageVersion (Geerbt von Binding.)
Öffentliche EigenschaftName (Geerbt von Binding.)
Öffentliche EigenschaftNamespace (Geerbt von Binding.)
Öffentliche EigenschaftOpenTimeout (Geerbt von Binding.)
Öffentliche EigenschaftReaderQuotasRuft Einschränkungen für die Komplexität von SOAP-Nachrichten ab, die von Endpunkten verarbeitet werden können, die mit dieser Bindung konfiguriert sind, oder legt sie fest. Diese Eigenschaft darf nicht nullNothingnullptrunitein NULL-Verweis (Nothing in Visual Basic) sein. (Geerbt von NetTcpRelayBindingBase.)
Öffentliche EigenschaftReceiveTimeout (Geerbt von Binding.)
Öffentliche EigenschaftReliableSessionRuft ein Objekt ab, das angibt, ob eine zuverlässige Sitzung zwischen den Windows Azure Service Bus-Kanalendpunkten eingerichtet wird.
Öffentliche EigenschaftSchemeRuft das URI-Schema für den Transport ab. (Geerbt von NetTcpRelayBindingBase.)
Öffentliche EigenschaftSecurityRuft ein Objekt ab, das den Sicherheitstyp angibt, der mit Diensten verwendet wird, die mit dieser Bindung konfiguriert sind. (Geerbt von NetTcpRelayBindingBase.)
Öffentliche EigenschaftSendTimeout (Geerbt von Binding.)
Öffentliche EigenschaftTransferModeRuft einen Wert ab, der angibt, ob der mit der Bindung konfigurierte Dienst bei der Nachrichtenübertragung den Streaming- oder Puffermodus (oder beide) verwendet, bzw. legt diesen fest. (Geerbt von NetTcpRelayBindingBase.)
Zum Anfang

  NameBeschreibung
Geschützte MethodeApplyConfigurationWendet die Einstellungen aus dem Konfigurationselement, das dem angegebenen Namen entspricht, auf die aktuelle Instanz dieses Bindungselements an. (Überschreibt NetTcpRelayBindingBase..::..ApplyConfiguration(String).)
Öffentliche MethodeBuildChannelFactory<(Of <<'(TChannel>)>>)(array<Object>[]()[][]) (Geerbt von Binding.)
Öffentliche MethodeBuildChannelFactory<(Of <<'(TChannel>)>>)(BindingParameterCollection) (Geerbt von Binding.)
Öffentliche MethodeBuildChannelListener<(Of <<'(TChannel>)>>)(array<Object>[]()[][]) (Geerbt von Binding.)
Öffentliche MethodeBuildChannelListener<(Of <<'(TChannel>)>>)(BindingParameterCollection) (Geerbt von Binding.)
Öffentliche MethodeBuildChannelListener<(Of <<'(TChannel>)>>)(Uri, array<Object>[]()[][]) (Geerbt von Binding.)
Öffentliche MethodeBuildChannelListener<(Of <<'(TChannel>)>>)(Uri, BindingParameterCollection) (Geerbt von Binding.)
Öffentliche MethodeBuildChannelListener<(Of <<'(TChannel>)>>)(Uri, String, array<Object>[]()[][]) (Geerbt von Binding.)
Öffentliche MethodeBuildChannelListener<(Of <<'(TChannel>)>>)(Uri, String, BindingParameterCollection) (Geerbt von Binding.)
Öffentliche MethodeBuildChannelListener<(Of <<'(TChannel>)>>)(Uri, String, ListenUriMode, array<Object>[]()[][]) (Geerbt von Binding.)
Öffentliche MethodeBuildChannelListener<(Of <<'(TChannel>)>>)(Uri, String, ListenUriMode, BindingParameterCollection) (Geerbt von Binding.)
Öffentliche MethodeCanBuildChannelFactory<(Of <<'(TChannel>)>>)(array<Object>[]()[][]) (Geerbt von Binding.)
Öffentliche MethodeCanBuildChannelFactory<(Of <<'(TChannel>)>>)(BindingParameterCollection) (Geerbt von Binding.)
Öffentliche MethodeCanBuildChannelListener<(Of <<'(TChannel>)>>)(array<Object>[]()[][]) (Geerbt von Binding.)
Öffentliche MethodeCanBuildChannelListener<(Of <<'(TChannel>)>>)(BindingParameterCollection) (Geerbt von Binding.)
Öffentliche MethodeCreateBindingElementsErstellt eine Auflistung mit den Bindungselementen für die Bindung. (Überschreibt NetTcpRelayBindingBase..::..CreateBindingElements()()()().)
Geschützte MethodeCreateMessageSecurityErstellt das Nachrichtensicherheitstoken für die aktuelle Instanz. (Überschreibt NetTcpRelayBindingBase..::..CreateMessageSecurity()()()().)
Öffentliche MethodeEquals (Geerbt von Object.)
Geschützte MethodeFinalize (Geerbt von Object.)
Öffentliche MethodeGetHashCode (Geerbt von Object.)
Öffentliche MethodeGetProperty<(Of <<'(T>)>>) (Geerbt von Binding.)
Öffentliche MethodeGetType (Geerbt von Object.)
Geschützte MethodeIsBindingElementsMatch(TcpRelayTransportBindingElement, BinaryMessageEncodingBindingElement)Ermittelt, ob die angegebenen Bindungselemente mit den Standardwerten der Bindungselemente in der aktuellen Instanz übereinstimmen. (Geerbt von NetTcpRelayBindingBase.)
Geschützte MethodeIsBindingElementsMatch(TcpRelayTransportBindingElement, BinaryMessageEncodingBindingElement, ReliableSessionBindingElement)Gibt einen Wert zurück, der festlegt, ob die angegebenen Objekte entsprechende Bindungselemente aufweisen.
Geschützte MethodeMemberwiseClone (Geerbt von Object.)
Öffentliche MethodeShouldSerializeName (Geerbt von Binding.)
Öffentliche MethodeShouldSerializeNamespace (Geerbt von Binding.)
Öffentliche MethodeToString (Geerbt von Object.)
Zum Anfang

  NameBeschreibung
Geschütztes FeldencodingDas Codierungselement für die aktuelle Instanz. Zusammen mit den Sicherheits- und Transporteinstellungen bildet die Codierung die drei Kerneigenschaften einer Bindung. (Geerbt von NetTcpRelayBindingBase.)
Geschütztes FeldtransportDas Transportelement für die aktuelle Instanz. Zusammen mit den Codierungs- und Sicherheitseinstellungen bildet die Transporteinstellung die drei Kerneigenschaften einer Bindung. (Geerbt von NetTcpRelayBindingBase.)
Zum Anfang

  NameBeschreibung
Explizite SchnittstellenimplementierungPrivate EigenschaftIBindingRuntimePreferences..::..ReceiveSynchronouslyRuft einen Wert ab, der angibt, ob eingehende Anforderungen synchron oder asynchron verarbeitet werden sollen. (Geerbt von NetTcpRelayBindingBase.)
Zum Anfang

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

HinweisHinweis

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

Alle öffentlichen static (Shared in Visual Basic)-Elemente dieses Typs sind Threadsicher. Für Instanzelemente wird die Threadsicherheit nicht gewährleistet.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft