Продажи: 1-800-867-1389

Класс NetTcpRelayBinding

Предоставляет безопасную и надежную привязку для межкомпьютерной связи.

Пространство имен:  Microsoft.ServiceBus
Сборка:  Microsoft.ServiceBus (в Microsoft.ServiceBus.dll)

public class NetTcpRelayBinding : NetTcpRelayBindingBase, 
	IBindingRuntimePreferences

Тип NetTcpRelayBinding обеспечивает доступ к следующим элементам.

  ИмяОписание
Открытый методNetTcpRelayBinding()()()()Инициализирует новый экземпляр класса NetTcpRelayBinding.
Открытый методNetTcpRelayBinding(String)Инициализирует новый экземпляр класса NetTcpRelayBinding с указанной XML-конфигурацией.
Открытый методNetTcpRelayBinding(EndToEndSecurityMode, RelayClientAuthenticationType)Инициализирует новый экземпляр класса NetTcpRelayBinding, используя указанный тип безопасности и тип клиентской проверки подлинности при ретрансляции.
Открытый методNetTcpRelayBinding(EndToEndSecurityMode, RelayClientAuthenticationType, Boolean)Инициализирует новый экземпляр класса NetTcpRelayBinding, используя указанный тип безопасности, тип клиентской проверки подлинности и значение, указывающее, включены ли явно надежные сеансы.
Защищенный методNetTcpRelayBinding(TcpRelayTransportBindingElement, BinaryMessageEncodingBindingElement, ReliableSessionBindingElement, NetTcpRelaySecurity)Инициализирует новый экземпляр класса NetTcpRelayBinding, используя указанные параметры транспорта, кодировки, сеансов и безопасности.
В начало

  ИмяОписание
Открытое свойствоCloseTimeout (Производный от Binding.)
Открытое свойствоConnectionModeВозвращает или задает режим подключения: Hybrid или Relayed. (Производный от NetTcpRelayBindingBase.)
Открытое свойствоEnvelopeVersionВозвращает версию SOAP, которая используется для сообщений, обрабатываемых этой привязкой. (Производный от NetTcpRelayBindingBase.)
Открытое свойствоHostNameComparisonModeПолучает или задает режим сравнения, используемый в имени узла. (Производный от NetTcpRelayBindingBase.)
Открытое свойствоIsDynamicПолучает или задает значение, указывающее, является ли привязка ретрансляции динамической. (Производный от NetTcpRelayBindingBase.)
Открытое свойствоListenBacklogполучение или установка максимального числа запросов на подключение, ожидающих помещения в очередь. (Производный от NetTcpRelayBindingBase.)
Открытое свойствоMaxBufferPoolSizeВозвращает или задает максимальный размер буферного пула, где хранятся сообщения, обрабатываемые привязкой. (Производный от NetTcpRelayBindingBase.)
Открытое свойствоMaxBufferSizeВозвращает или задает значение, указывающее максимальный размер буфера, используемого для хранения сообщений в памяти. (Производный от NetTcpRelayBindingBase.)
Открытое свойствоMaxConnectionsНа клиенте возвращает или задает максимальное число подключений, помещаемых в пул для последующего повторного использования; на сервере возвращает или задает максимальное количество подключений, ожидающих распределения. (Производный от NetTcpRelayBindingBase.)
Открытое свойствоMaxReceivedMessageSizeВозвращает или задает максимальный размер получаемого сообщения, обработанного привязкой. (Производный от NetTcpRelayBindingBase.)
Защищенное свойствоMessageSecurityVersionПолучает версию безопасности сообщения. (Производный от NetTcpRelayBindingBase.)
Открытое свойствоMessageVersion (Производный от Binding.)
Открытое свойствоName (Производный от Binding.)
Открытое свойствоNamespace (Производный от Binding.)
Открытое свойствоOpenTimeout (Производный от Binding.)
Открытое свойствоReaderQuotasВозвращает или задает ограничения на сложность SOAP-сообщений, которые могут обрабатываться конечными точками с этой привязкой. Это свойство не может иметь значение nullNothingnullptrunitпустая ссылка (Nothing в Visual Basic). (Производный от NetTcpRelayBindingBase.)
Открытое свойствоReceiveTimeout (Производный от Binding.)
Открытое свойствоReliableSessionВозвращает объект, указывающий, установлен ли надежный сеанс между конечными точками Service Bus .
Открытое свойствоSchemeПолучает URI-схему для транспорта. (Производный от NetTcpRelayBindingBase.)
Открытое свойствоSecurityВозвращает объект, который указывает тип безопасности, используемый для служб с этой привязкой. (Производный от NetTcpRelayBindingBase.)
Открытое свойствоSendTimeout (Производный от Binding.)
Открытое свойствоTransferModeВозвращает или задает значение, указывающее, какой режим передачи сообщений настроен у привязки службы, — потоковый, буферный (или оба сразу). (Производный от NetTcpRelayBindingBase.)
В начало

  ИмяОписание
Защищенный методApplyConfigurationПрименяет параметры из элемента конфигурации, соответствующего указанному имени, в текущем экземпляре элемента привязки. (Переопределяет NetTcpRelayBindingBase..::..ApplyConfiguration(String).)
Открытый методBuildChannelFactory<(Of <<'(TChannel>)>>)(array<Object>[]()[][]) (Производный от Binding.)
Открытый методBuildChannelFactory<(Of <<'(TChannel>)>>)(BindingParameterCollection) (Производный от Binding.)
Открытый методBuildChannelListener<(Of <<'(TChannel>)>>)(array<Object>[]()[][]) (Производный от Binding.)
Открытый методBuildChannelListener<(Of <<'(TChannel>)>>)(BindingParameterCollection) (Производный от Binding.)
Открытый методBuildChannelListener<(Of <<'(TChannel>)>>)(Uri, array<Object>[]()[][]) (Производный от Binding.)
Открытый методBuildChannelListener<(Of <<'(TChannel>)>>)(Uri, BindingParameterCollection) (Производный от Binding.)
Открытый методBuildChannelListener<(Of <<'(TChannel>)>>)(Uri, String, array<Object>[]()[][]) (Производный от Binding.)
Открытый методBuildChannelListener<(Of <<'(TChannel>)>>)(Uri, String, BindingParameterCollection) (Производный от Binding.)
Открытый методBuildChannelListener<(Of <<'(TChannel>)>>)(Uri, String, ListenUriMode, array<Object>[]()[][]) (Производный от Binding.)
Открытый методBuildChannelListener<(Of <<'(TChannel>)>>)(Uri, String, ListenUriMode, BindingParameterCollection) (Производный от Binding.)
Открытый методCanBuildChannelFactory<(Of <<'(TChannel>)>>)(array<Object>[]()[][]) (Производный от Binding.)
Открытый методCanBuildChannelFactory<(Of <<'(TChannel>)>>)(BindingParameterCollection) (Производный от Binding.)
Открытый методCanBuildChannelListener<(Of <<'(TChannel>)>>)(array<Object>[]()[][]) (Производный от Binding.)
Открытый методCanBuildChannelListener<(Of <<'(TChannel>)>>)(BindingParameterCollection) (Производный от Binding.)
Открытый методCreateBindingElementsСоздает коллекцию с элементами для привязки. (Переопределяет NetTcpRelayBindingBase..::..CreateBindingElements()()()().)
Защищенный методCreateMessageSecurityСоздает маркер безопасности сообщений для текущего экземпляра. (Переопределяет NetTcpRelayBindingBase..::..CreateMessageSecurity()()()().)
Открытый методEquals (Производный от Object.)
Защищенный методFinalize (Производный от Object.)
Открытый методGetHashCode (Производный от Object.)
Открытый методGetProperty<(Of <<'(T>)>>) (Производный от Binding.)
Открытый методGetType (Производный от Object.)
Защищенный методIsBindingElementsMatch(TcpRelayTransportBindingElement, BinaryMessageEncodingBindingElement)Определяет, соответствуют ли указанные элементы привязки заданным по умолчанию значениям элементов привязки в текущем экземпляре. (Производный от NetTcpRelayBindingBase.)
Защищенный методIsBindingElementsMatch(TcpRelayTransportBindingElement, BinaryMessageEncodingBindingElement, ReliableSessionBindingElement)Возвращает значение, определяющее, есть ли у указанных объектов совпадающие элементы привязки.
Защищенный методMemberwiseClone (Производный от Object.)
Открытый методShouldSerializeName (Производный от Binding.)
Открытый методShouldSerializeNamespace (Производный от Binding.)
Открытый методToString (Производный от Object.)
В начало

  ИмяОписание
Защищенное полеencodingЭлемент кодировки для текущего экземпляра. Вместе с параметрами безопасности и типом транспорта кодировка — одно из трех основных свойств привязки. (Производный от NetTcpRelayBindingBase.)
Защищенное полеtransportЭлемент транспорта для текущего экземпляра. Вместе с кодировкой и безопасностью транспорт — одно из трех основных свойств привязки. (Производный от NetTcpRelayBindingBase.)
В начало

  ИмяОписание
Явная реализация интерфейсаЗакрытое свойствоIBindingRuntimePreferences..::..ReceiveSynchronouslyПолучает значение, указывающее, обрабатываются входящие запросы синхронно или асинхронно. (Производный от NetTcpRelayBindingBase.)
В начало

Service Bus supports only Full Trust code access security.

ПримечаниеПримечание

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

Любые открытые статический (Shared в Visual Basic) элементы этого типа потокобезопасны. Потокобезопасность с элементами экземпляров не гарантируется.
Была ли вам полезна эта информация?
(1500 символов осталось)
Спасибо за ваш отзыв

Добавления сообщества

ДОБАВИТЬ
Показ:
© 2014 Microsoft