System.ServiceModel 4.0.0.0 System.ServiceModel.Channels.BindingElement System.ServiceModel.Description.IPolicyExportExtension

Provides sessions and optionally provides ordered message delivery. This implemented session can cross SOAP and transport intermediaries.

Each binding element represents a processing step when sending or receiving messages. At runtime, binding elements create the channel factories and listeners that are necessary to build outgoing and incoming channel stacks required to send and receive messages. The provides an optional layer in the stack that can establish a reliable session between endpoints and configure the behavior of this session.

The is provided on the standard bindings in the following table.

Binding

Default

Off

Off

On (required)

Represents the binding element that can produce the sending and receiving channels required for a reliable session between endpoints.

- Constructor
  4.0.0.0
  To be added.

  Initializes a new instance of the class.

- Constructor
  4.0.0.0
  To be added.

  Initializes a new instance of the class that specifies whether message delivery must preserve the order in which messages are sent.

  true if messages must be delivered in the order in which they are sent; otherwise, false. The default value is true.
- Property
  4.0.0.0
  System.TimeSpan To be added.

  The destination that receives messages on a reliable channel groups the acknowledgments for these messages together into a single message to reduce network traffic and to increase information density on messages. Grouping scales better as traffic increases. It does not attempt to send an acknowledgment for every message it receives as soon as possible, but rather waits for an interval of time, groups together the acknowledgments that have arrived during that interval, and then sends them all together. The first message that is received is the exception; it is acknowledged as soon as it is delivered. Also, if reliable sessions are used with single HTTP connections, as is the case for example with the but not , then this setting is not used.

  The value that is set with the property is a recommendation to the infrastructure and not a hard limit.

  Gets or sets the interval of time that a destination waits before sending an acknowledgment to the message source on reliable channels that are created by the factory.

- Method
  4.0.0.0
  System.ServiceModel.Channels.IChannelFactory<TChannel> ``

  The produced by the factory is of type . The types of supported on the client is dependent of the types of underlying channels that connect to the service. The following table indicates what reliable session channel types are supported as a function of the underlying channels.

  Support for Reliable Session TChannel Types by Underlying Channel Types

  IRequestChannel

  IRequestSessionChannel

  IDuplexChannel

  IDuplexSessionChannel

  IOutputSessionChannel

  Yes

  Yes

  Yes

  Yes

  IRequestSessionChannel

  Yes

  Yes

  No

  No

  IDuplexSessionChannel

  No

  No

  Yes

  Yes

  Returns a factory that creates a channel of a specified type that supports a reliable session.

  A of type initialized from the .

  The that contains the information required to build the factories that can produce channels of type . The type of channel the factory builds.
- Method
  4.0.0.0
  System.ServiceModel.Channels.IChannelListener<TChannel> ReferenceTypeConstraint System.ServiceModel.Channels.IChannel ``

  The accepted by the listener is of type . The types of supported on the server that hosts the service is dependent of the types of underlying channels used to connect to the client. The following table indicates what reliable session channel types are supported as a function of the underlying channels.

  Support for Reliable Session TChannel Types by Underlying Channel Types

  IReplyChannel

  IReplySessionChannel

  IDuplexChannel

  IDuplexSessionChannel

  IInputSessionChannel

  Yes

  Yes

  Yes

  Yes

  IReplySessionChannel

  Yes

  Yes

  No

  No

  IDuplexSessionChannel

  No

  No

  Yes

  Yes

  Returns a listener that accepts a channel of a specified type that supports a reliable session.

  The of type initialized from the .

  The that contains the information required to build the listeners that can accept channels of type . The that the listener is built to accept.
- Method
  4.0.0.0
  System.Boolean ``

  This method returns true or false for a in accordance with the table of values provided in .

  Returns a value that indicates whether the channel factory can be built for the channel and context provided that can support a reliable session.

  true if the of type can be built; otherwise, false.

  The that contains the information required to build the factories that can produce channels of type . The type of channel the factory builds.
- Method
  4.0.0.0
  System.Boolean ReferenceTypeConstraint System.ServiceModel.Channels.IChannel ``

  Channel stacks are typically created using a factory pattern where a binding creates the channel stack. When sending messages, a binding is used to build a channel factory which in turn builds a channel stack and returns a reference to the top channel in the stack. The application can then use this channel to send messages. Similarly when receiving messages, a binding is used to build a channel listener which listens for incoming messages. The channel listener provides messages to the listening application by creating channel stacks and handing the application a reference to the top channel.

  This method returns true or false for a in accordance with the table of values provided in .

  Returns a value that indicates whether the channel listener can be built for the channel and context provided that can support a reliable session.

  true if the that can produce an of type can be built by the binding element; otherwise, false.

  The that contains the information required to build the listeners that can accept channels of type . The l that the channel listener, if build, accepts.
- Method
  4.0.0.0
  System.ServiceModel.Channels.BindingElement To be added.

  Creates a copy of the current reliable session binding element.

  A that is a clone of the current binding element.

- Property
  4.0.0.0
  System.Boolean To be added.

  Flow control is a mechanism that reliable sessions implement to ensure that senders do not send more messages than a receiver can handle. Receivers have a buffer of messages that is used to accommodate message bursts and out-of-order messages. Receivers advertise to senders the amount of space that remains in this buffer in each of their acknowledgements. Senders can use this information to stop sending new messages whenever the receiver has no buffer space left.

  Gets or sets a value that indicates whether the reliable session has flow control enabled.

- Method
  4.0.0.0
  T ReferenceTypeConstraint `` To be added.

  Gets a property of the specified type from its binding context.

  The property of type with the specified or null if no property of type is found.

  The that contains the information required to retrieve the channel of type . The type of property retrieved.
- Property
  4.0.0.0
  System.TimeSpan To be added.

  Activity on a channel is defined as receiving an application or infrastructure message. The inactivity timeout parameter controls the maximum amount of time to keep an inactive session alive. If more than time interval passes with no activity, the session is aborted by the infrastructure and the channel faults. The reliable session is torn down unilaterally.

  If the sending application has no messages to send then the reliable session is normally not faulted because of inactivity; instead a keep-alive mechanism keeps the session active indefinitely. Note that the dispatcher can independently abort the reliable session if no application messages are sent or received. Thus, the inactivity timeout typically expires if network conditions are such that no messages are received or if there is a failure on the sender.

  Gets or sets an interval of time that a service remains inactive before closing.

- Property
  4.0.0.0
  System.Int32 To be added.

  Channels are pending when they are waiting to be accepted. Once that limit is reached, no channels are created and put in pending mode until this number goes down (by accepting pending channels). This is a limit for each listener.

  When the threshold is reached and a remote application tries to establish a new reliable session, the request is denied and the open operation that prompted this faults.

  Gets or sets the largest number of channels that can be pending during the reliable session.

- Property
  4.0.0.0
  System.Int32 To be added.

  A message is considered to be transferred if its delivery at the recipient has been acknowledged by the recipient.

  If an acknowledgment has not been received within a certain amount of time for a message that has been transmitted, the infrastructure automatically retransmits the message. The infrastructure tries to send the message for, at most, a number of times. Not receiving an acknowledgment before this limit is reached is considered a fatal communication failure and causes the channel faulted event to be raised.

  The infrastructure uses an exponential back-off algorithm to determine when to retransmit, based on a computed average round-trip time. The initial retry time is computed based on the measured roundtrip time of establishing the session. The retransmission algorithm doubles the delay with every attempt, which results in approximately 8.5 minutes passing between the first transmission attempt and the last retransmission attempt. The time for the first retransmission attempt is adjusted according to the calculated round-trip time and the resulting stretch of time that those attempts take varies accordingly. This allows the retransmission time to dynamically adapt to varying network conditions.

  Gets or sets the maximum number of times that a message attempts to be transferred during the reliable session.

- Property
  4.0.0.0
  System.Int32 To be added.

  The value of the property can be set on both the sender and the receiver. This value is included in the binding policy of the WSDL, so if you use the ServiceModel Metadata Utility Tool (Svcutil.exe) to construct your client, it has the same value. Otherwise this value is whatever you set it to be on the client.

  When this limit is reached on the sender, additional calls to send are blocked. When this limit is reached on the receiver, new messages that arrive on the underlying channel are not accepted.

  A reliable session uses a windowing protocol to help improve network utilization. The amount of buffering required is directly derived from the size of the transmission window. When tuning this value, note that the optimal transmission window is related to the bandwidth and the latency in a straight-forward way. The ideal maximum window size is the bandwidth times the latency. Anything smaller yields less than 100% network utilization; anything larger is just wasted space.

  Gets or sets the largest number of messages that can exist in either the send buffer or the receive buffer.

- Property
  4.0.0.0
  System.Boolean To be added.

  To get messages dispatched in order, you also must set the to .

  Gets or sets a value that indicates whether message delivery must preserve the order in which messages are sent.

- Property
  4.0.0.0
  System.ServiceModel.ReliableMessagingVersion To be added.

  There are currently two versions of the WS-ReliableMessaging protocol supported by indigo1: WS-ReliableMessaging1.1 and WS-ReliableMessagingFebruary2005. The default version is WS-ReliableMessagingFebruary2005.

  Gets or sets the version of WS-ReliableMessaging specified by the binding element.

- Method
  4.0.0.0
  System.Void `` `` To be added.

  Maps the information contained in the reliable session binding element into the WSDL elements that enable a remote endpoint to access the service with a reliable session.

  The that exports the binding information in the reliable session binding element to the WSDL elements. The that provides the mapping from exported WSDL elements to the endpoint description.