Поделиться через


ReliableSessionBindingElement Класс

Определение

Представляет элемент привязки, который может производить каналы отправки или получения, необходимые для надежного сеанса между конечными точками.

public ref class ReliableSessionBindingElement sealed : System::ServiceModel::Channels::BindingElement
public ref class ReliableSessionBindingElement sealed : System::ServiceModel::Channels::BindingElement, System::ServiceModel::Description::IPolicyExportExtension
public sealed class ReliableSessionBindingElement : System.ServiceModel.Channels.BindingElement
public sealed class ReliableSessionBindingElement : System.ServiceModel.Channels.BindingElement, System.ServiceModel.Description.IPolicyExportExtension
type ReliableSessionBindingElement = class
    inherit BindingElement
type ReliableSessionBindingElement = class
    inherit BindingElement
    interface IPolicyExportExtension
Public NotInheritable Class ReliableSessionBindingElement
Inherits BindingElement
Public NotInheritable Class ReliableSessionBindingElement
Inherits BindingElement
Implements IPolicyExportExtension
Наследование
ReliableSessionBindingElement
Реализации

Примеры

Элемент ReliableSessionBindingElement может быть добавлен в любую пользовательскую привязку. Это выполняется при помощи следующих элементов конфигурации.

<bindings>
    <customBinding>
        <binding configurationName="ReliabilityHTTP">
            <reliableSession/>
        </binding>
    </customBinding>
</bindings>

В следующем образце кода показано, как использовать элемент ReliableSessionBindingElement в коде.

Uri baseAddress = new Uri("http://localhost:8000/servicemodelsamples/service");

// Create a ServiceHost for the CalculatorService type and provide the base address.
using (ServiceHost serviceHost = new ServiceHost(typeof(CalculatorService), baseAddress))
{
    // Create a custom binding that contains two binding elements.
    ReliableSessionBindingElement reliableSession = new ReliableSessionBindingElement();
    reliableSession.Ordered = true;

    HttpTransportBindingElement httpTransport = new HttpTransportBindingElement();
    httpTransport.AuthenticationScheme = System.Net.AuthenticationSchemes.Anonymous;
    httpTransport.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard;

    CustomBinding binding = new CustomBinding(reliableSession, httpTransport);

    // Add an endpoint using that binding.
    serviceHost.AddServiceEndpoint(typeof(ICalculator), binding, "");

    // Add a MEX endpoint.
    ServiceMetadataBehavior smb = new ServiceMetadataBehavior();
    smb.HttpGetEnabled = true;
    smb.HttpGetUrl = new Uri("http://localhost:8001/servicemodelsamples");
    serviceHost.Description.Behaviors.Add(smb);

    // Open the ServiceHostBase to create listeners and start listening for messages.
    serviceHost.Open();

    // The service can now be accessed.
    Console.WriteLine("The service is ready.");
    Console.WriteLine("Press <ENTER> to terminate service.");
    Console.WriteLine();
    Console.ReadLine();

    // Close the ServiceHostBase to shutdown the service.
    serviceHost.Close();
}
Dim baseAddress As New Uri("http://localhost:8000/servicemodelsamples/service")

' Create a ServiceHost for the CalculatorService type and provide the base address.
Using serviceHost As New ServiceHost(GetType(CalculatorService), baseAddress)
    ' Create a custom binding that contains two binding elements.
    Dim reliableSession As New ReliableSessionBindingElement()
    reliableSession.Ordered = True

    Dim httpTransport As New HttpTransportBindingElement()
    httpTransport.AuthenticationScheme = System.Net.AuthenticationSchemes.Anonymous
    httpTransport.HostNameComparisonMode = HostNameComparisonMode.StrongWildcard

    Dim binding As New CustomBinding(reliableSession, httpTransport)

    ' Add an endpoint using that binding.
    serviceHost.AddServiceEndpoint(GetType(ICalculator), binding, "")

    ' Add a MEX endpoint.
    Dim smb As New ServiceMetadataBehavior()
    smb.HttpGetEnabled = True
    smb.HttpGetUrl = New Uri("http://localhost:8001/servicemodelsamples")
    serviceHost.Description.Behaviors.Add(smb)

    ' Open the ServiceHostBase to create listeners and start listening for messages.
    serviceHost.Open()

    ' The service can now be accessed.
    Console.WriteLine("The service is ready.")
    Console.WriteLine("Press <ENTER> to terminate service.")
    Console.WriteLine()
    Console.ReadLine()

    ' Close the ServiceHostBase to shutdown the service.
    serviceHost.Close()
End Using

Комментарии

Предоставляет сеансы, дополнительно может предоставлять упорядоченную доставку сообщений. Эта реализация сеанса может использоваться в контексте посредников SOAP и транспорта.

Каждый элемент привязки представляет собой этап обработки при отправке или получении сообщений. Во время выполнения элементы привязки создают фабрики и прослушиватели каналов, которые нужны для построения стеков исходящих и входящих каналов, необходимых для приема и передачи сообщений. Элемент ReliableSessionBindingElement предоставляет дополнительный уровень в стеке, который может установить надежный сеанс между конечными точками и настроить поведение этого сеанса.

Элемент ReliableSessionBindingElement предоставляется со стандартными привязками, перечисленными в таблице.

Привязка По умолчанию
NetTcpBinding Выключено
WSHttpBinding Выключено
WSDualHttpBinding Используется (требуется)

Конструкторы

ReliableSessionBindingElement()

Инициализирует новый экземпляр класса ReliableSessionBindingElement.

ReliableSessionBindingElement(Boolean)

Инициализирует новый экземпляр класса ReliableSessionBindingElement, определяющий, следует ли сохранять порядок отправки сообщений при доставке.

Свойства

AcknowledgementInterval

Возвращает или задает промежуток времени, в течение которого пункт назначения простаивает в ожидании перед отправкой подтверждения источнику сообщения при использовании надежных каналов, созданных фабрикой.

FlowControlEnabled

Возвращает или задает значение, указывающее, разрешено ли управление потоком для надежного сеанса.

InactivityTimeout

Возвращает или задает временной интервал, в течение которого служба остается в бездействии, перед тем как будет закрыта.

MaxPendingChannels

Возвращает или задает максимальное число ожидающих каналов для надежного сеанса.

MaxRetryCount

Возвращает или задает максимальное число попыток передачи сообщения во время надежного сеанса.

MaxTransferWindowSize

Возвращает или задает максимальное число сообщений в буфере отправки или получения.

Ordered

Возвращает или задает значение, указывающее, должен ли при доставке сохраняться порядок отправки сообщений.

ReliableMessagingVersion

Возвращает или задает версию протокола WS-ReliableMessaging, заданную в элементе привязки.

Методы

BuildChannelFactory<TChannel>(BindingContext)

Возвращает фабрику, создающую канал заданного типа, которая поддерживает надежный сеанс.

BuildChannelListener<TChannel>(BindingContext)

Возвращает прослушиватель, принимающий канал заданного типа, который поддерживает надежный сеанс.

BuildChannelListener<TChannel>(BindingContext)

Инициализирует прослушиватель каналов для приема каналов заданного типа из контекста привязки.

(Унаследовано от BindingElement)
CanBuildChannelFactory<TChannel>(BindingContext)

Возвращает значение, указывающее, может ли быть создана фабрика каналов для предоставленных канала и контекста, поддерживающая надежный сеанс.

CanBuildChannelListener<TChannel>(BindingContext)

Возвращает значение, указывающее, может ли быть создан прослушиватель каналов для предоставленных канала и контекста, поддерживающий надежный сеанс.

CanBuildChannelListener<TChannel>(BindingContext)

Возвращает значение, показывающее, может ли элемент привязки создать прослушиватель для заданного типа канала.

(Унаследовано от BindingElement)
Clone()

Создает копию элемента привязки текущего надежного сеанса.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetProperty<T>(BindingContext)

Возвращает свойство заданного типа из соответствующего контекста привязок.

GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Явные реализации интерфейса

IPolicyExportExtension.ExportPolicy(MetadataExporter, PolicyConversionContext)

Сопоставляет сведения, содержащиеся в элементе привязки надежного сеанса, с элементами WSDL, позволяющими удаленной конечной точке получить доступ к службе с надежным сеансом.

Применяется к