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 указан в стандартных привязках в следующей таблице.

Binding По умолчанию
NetTcpBinding Выкл.
WSHttpBinding Выкл.
WSDualHttpBinding В (обязательно)

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

Имя Описание
ReliableSessionBindingElement()

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

ReliableSessionBindingElement(Boolean)

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

Свойства

Имя Описание
AcknowledgementInterval

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

FlowControlEnabled

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

InactivityTimeout

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

MaxPendingChannels

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

MaxRetryCount

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

MaxTransferWindowSize

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

Ordered

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

ReliableMessagingVersion

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

Методы

Имя Описание
BuildChannelFactory<TChannel>(BindingContext)

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

BuildChannelListener<TChannel>(BindingContext)

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

CanBuildChannelFactory<TChannel>(BindingContext)

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

CanBuildChannelListener<TChannel>(BindingContext)

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

Clone()

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

Equals(Object)

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

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

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

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

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

GetType()

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

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

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

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

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

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

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

Имя Описание
IPolicyExportExtension.ExportPolicy(MetadataExporter, PolicyConversionContext)

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

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