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 можно добавить в любую пользовательскую привязку. Это делается с помощью следующих элементов конфигурации.
<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, которые позволяют удаленной конечной точке получать доступ к службе с надежным сеансом. |