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