System.ServiceModel 4.0.0.0 System.Object System.ServiceModel.IDefaultCommunicationTimeouts

Represents a collection of binding elements, each of which describes an aspect of how an endpoint communicates with other endpoints and that are built, consistently, into a channel factory on the client and into a channel listener on the service. A binding contains a collection of binding elements that correspond to protocol channels, transport channels, and message encoders. There can be any number of binding elements for protocol channels but one and only one binding element for each the transport and message encoder. There are commonly six layers of binding elements in a binding. Only the transport and encoding binding elements at the bottom of the stack are required. Because an encoding is required for each binding, if an encoding is not specified, indigo1 adds a default encoding for you. The default is Text/XML for the HTTP and HTTPS transports, and Binary for other transports.

The following table summarizes the options for each layer.

Layer

Options

Required

Transaction Flow

No

Reliability

No

Security

Symmetric, Asymmetric, Transport-Level

No

Shape Change

No

Transport Upgrades

SSL stream, Windows stream, Peer Resolver

No

Encoding

Text, Binary, MTOM, Custom

Yes

Transport

TCP, Named Pipes, HTTP, HTTPS, MSMQ, Custom

Yes

Each binding element provides the specification for building a channel factory on the client and a channel listener on the service. When the channel factory stack is constructed, for example, there is one channel factory in the stack for each binding element in the binding. The same sort of mapping applies to the channel listeners in the stack on the service. Consistency on the client and service is critical for establishing the channel-based connection between these endpoints. Each factory and listener, in turn, processes the sending and accepting of the corresponding channels in the channel stack that connects them, and these channels can then send and receive the messages used to communicate.

Each instance of a has a and that together uniquely identify it in the metadata of the service. If no name or namespace is specified, indigo2 adds a default values for you. The default name is null and the default namespace is http://tempuri.org/. This user name for the binding is distinct from the specification of the protocol name, which is specified by the property. If you want to add more HTTP bindings, for example, you can name them whatever you want and set all of their schemes to "http". There is no inherent application or machine dispatch based on the . So you avoid the common problem of being unable to register additional handlers for well-known protocols. You can also easily work with multiple versions of a binding side-by-side by giving each version a different name.

The class implements the interface to mitigate Denial of Service (DOS) attacks that rely on tying up resources for extended intervals of time. The implementation specifies the communication timeouts values for opening and closing connections and for the reading and writing operations associated with receiving and sending messages. The properties used to get and set these timeouts and their default values operations are summarized in the following table.

Timeout Property

Default Value

1 minute

1 minute

1 minute

10 minutes

When you create a binding by inheriting from , you must override .

In addition, you can define your own binding elements and insert them between any of the defined layers in the preceding table. For more information, see the class.

Contains the binding elements that specify the protocols, transports, and message encoders used for communication between clients and services.

- Constructor
  4.0.0.0

  The default name is null and the default namespace is http://tempuri.org/.

  Initializes a new instance of the class with a default name and namespace.

- Constructor
  4.0.0.0

  The and together uniquely identify an instance of a in the metadata of the service.

  Initializes a new instance of the class from a specified binding of the service.

  The of the binding.
  The of the binding.
- Method
  4.0.0.0
  System.ServiceModel.Channels.IChannelFactory<TChannel> `System.ParamArray` To be added.

  Builds the channel factory stack on the client that creates a specified type of channel and that satisfies the features specified by an object array.

  An of type that satisfies the features specified by the collection.

  The object array that specifies requirements for the channel factory that is built. The type of channel the channel factory produces.
- Method
  4.0.0.0
  System.ServiceModel.Channels.IChannelFactory<TChannel> `` To be added.

  Builds the channel factory stack on the client that creates a specified type of channel and that satisfies the features specified by a collection of binding parameters.

  An of type that satisfies the features specified by the collection.

  The that specifies requirements for the channel factory built. The type of channel the channel factory produces.
- Method
  4.0.0.0
  System.ServiceModel.Channels.IChannelListener<TChannel> ReferenceTypeConstraint System.ServiceModel.Channels.IChannel `System.ParamArray` To be added.

  Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

  An of type that satisfies the features specified.

  The object array that specifies requirements for the channel factory built. The type of channel the channel listener accepts.
- Method
  4.0.0.0
  System.ServiceModel.Channels.IChannelListener<TChannel> ReferenceTypeConstraint System.ServiceModel.Channels.IChannel `` To be added.

  Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified by a collection of binding parameters.

  An of type that satisfies the features specified.

  The that specifies requirements for the channel listener that is built. The type of channel the channel listener accepts.
- Method
  4.0.0.0
  System.ServiceModel.Channels.IChannelListener<TChannel> ReferenceTypeConstraint System.ServiceModel.Channels.IChannel `` `System.ParamArray` To be added. To be added.

  Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

  An of type that satisfies the features specified.

  The object array that specifies requirements for the channel factory that is built. The type of channel the channel listener accepts.
- Method
  4.0.0.0
  System.ServiceModel.Channels.IChannelListener<TChannel> ReferenceTypeConstraint System.ServiceModel.Channels.IChannel `` `` To be added. To be added.

  Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

  An of type that satisfies the features specified.

  The that specifies requirements for the channel listener that is built. The type of channel the channel listener accepts.
- Method
  4.0.0.0
  System.ServiceModel.Channels.IChannelListener<TChannel> ReferenceTypeConstraint System.ServiceModel.Channels.IChannel `` `` `System.ParamArray` To be added.

  Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

  An of type that satisfies the features specified.

  The that provides the base address on which the service listens. The address, relative to the base address, on which the service listens. The object array that specifies requirements for the channel factory that is built. The type of channel the channel listener accepts.
- Method
  4.0.0.0
  System.ServiceModel.Channels.IChannelListener<TChannel> ReferenceTypeConstraint System.ServiceModel.Channels.IChannel `` `` `` To be added.

  Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

  An of type that satisfies the features specified.

  The that provides the base address on which the service listens. The address, relative to the base address, on which the service listens. The that specifies requirements for the channel listener that is built. The type of channel the channel listener accepts.
- Method
  4.0.0.0
  System.ServiceModel.Channels.IChannelListener<TChannel> ReferenceTypeConstraint System.ServiceModel.Channels.IChannel `` `` `` `System.ParamArray` To be added.

  Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

  An of type that satisfies the features specified.

  The that provides the base address on which the service listens. The address, relative to the base address, on which the service listens. A value of the that indicates whether the transport must ensure that the URI provided for the service to listen on is unique or can be used exactly as provided. The object array that specifies requirements for the channel factory that is built. The type of channel the channel listener accepts.
- Method
  4.0.0.0
  System.ServiceModel.Channels.IChannelListener<TChannel> ReferenceTypeConstraint System.ServiceModel.Channels.IChannel `` `` `` `` To be added.

  Builds the channel listener on the service that accepts a specified type of channel and that satisfies the features specified.

  An of type that satisfies the features specified.

  The that provides the base address on which the service listens. The address, relative to the base address, on which the service listens. A value of the that indicates whether the transport must ensure that the URI provided for the service to listen on is unique or can be used exactly as provided. The that specifies requirements for the channel listener that is built. The type of channel the channel listener accepts.
- Method
  4.0.0.0
  System.Boolean `System.ParamArray`

  Use this method if you want to check that the channel factory for channels of type can be build for the binding specified before attempting to actually build the factory. Alternatively, try to build the channel factory by calling and catch the exception generated if it cannot be built.

  Returns a value that indicates whether the current binding can build a channel factory stack on the client that satisfies the requirements specified by an object array.

  true if the specified channel factory stack can be build on the client; otherwise, false.

  The object array that specifies requirements for the channel factory that is built. The type of channel for which the factory is being tested.
- Method
  4.0.0.0
  System.Boolean ``

  Use this method if you want to check that the channel factory for channels of type can be build for the binding specified before attempting to actually build the factory. Alternatively, try to build the channel factory by calling and catch the exception generated if it cannot be built.

  Returns a value that indicates whether the current binding can build a channel factory stack on the client that satisfies the collection of binding parameters specified.

  true if the specified channel factory stack can be build on the client; otherwise, false.

  The that specifies requirements for the channel factory that is built. The type of channel for which the factory is being tested.
- Method
  4.0.0.0
  System.Boolean ReferenceTypeConstraint System.ServiceModel.Channels.IChannel `System.ParamArray`

  Use this method if you want to check that the channel listener for channels of type can be build for the binding specified before attempting to actually build the listener. Alternatively, try to build the channel listener by calling and catch the exception generated if it cannot be built.

  Returns a value that indicates whether the current binding can build a channel listener stack on the service that satisfies the criteria specified in an array of objects.

  true if the specified channel listener stack can be build on the service; otherwise, false.

  The object array that specifies requirements for the channel factory that is built. The type of channel for which the listener is being tested.
- Method
  4.0.0.0
  System.Boolean ReferenceTypeConstraint System.ServiceModel.Channels.IChannel ``

  Use this method if you want to check that the channel listener for channels of type can be build for the binding specified before attempting to actually build the listener. Alternatively, try to build the channel listener by calling and catch the exception generated if it cannot be built.

  Returns a value that indicates whether the current binding can build a channel listener stack on the service that satisfies the collection of binding parameters specified.

  true if the specified channel listener stack can be build on the service; otherwise, false.

  The that specifies requirements for the channel listener that is built. The type of channel for which the listener is being tested.
- Property
  4.0.0.0
  System.TimeSpan To be added.

  The value of this property is used by the channels and listeners produced by the factories of the binding.

  Gets or sets the interval of time provided for a connection to close before the transport raises an exception.

- Method
  4.0.0.0
  System.ServiceModel.Channels.BindingElementCollection

  The elements should not reference any internal elements that the object uses.

  When overridden in a derived class, creates a collection that contains the binding elements that are part of the current binding.

  A object of type that contains the binding elements from the current binding object in the correct order.

- Method
  4.0.0.0
  T ReferenceTypeConstraint ``

  If a layer supports returning the requested object, it returns it. If not, it delegates the call down to the next layer in the stack. If it gets to the bottom of the stack and no layer supported the requested object, then the method returns null.

  Returns a typed object requested, if present, from the appropriate layer in the binding stack.

  The typed object requested if it is present or null if it is not.

  The that specifies requirements for the channel listener that is built. The typed object for which the method is querying.
- Property
  4.0.0.0
  System.ServiceModel.Channels.MessageVersion To be added. To be added.

  Gets the message version used by clients and services configured with the binding.

- Property
  4.0.0.0
  System.String To be added.

  Each instance of a has a and that together uniquely identify the user name for the binding in the metadata of the service.

  This user name for the binding is distinct from the specification of the protocol name, which is specified by the property. If you want to add more HTTP bindings, for example, you can name them whatever you want and set all of their schemes to "http". There is no inherent application or machine dispatch based on the . So you avoid the common problem of being unable to register additional handlers for well-known protocols. You can also easily work with multiple versions of a binding side-by-side by giving each version a different name.

  Gets or sets the name of the binding.

- Property
  4.0.0.0
  System.String To be added.

  Each instance of a has a and that together uniquely identify the user name for the binding in the metadata of the service.

  This user name for the binding is distinct from the specification of the protocol name, which is specified by the property. If you want to add more HTTP bindings, for example, you can name them whatever you want and set all of their schemes to "http". There is no inherent application or machine dispatch based on the . So you avoid the common problem of being unable to register additional handlers for well-known protocols. You can also easily work with multiple versions of a binding side-by-side by giving each version a different name.

  Gets or sets the XML namespace of the binding.

- Property
  4.0.0.0
  System.TimeSpan To be added.

  The value of this property is used by the channels and listeners produced by the factories of the binding.

  Gets or sets the interval of time provided for a connection to open before the transport raises an exception.

- Property
  4.0.0.0
  System.TimeSpan To be added.

  When using a reliable session, there are two different inactivity timers that must be satisfied to keep the connection alive. If either of these inactivity timers goes off, then the connection is dropped.

  The first inactivity timer is on the reliable session and is called the . This inactivity timer fires if no messages, either application or infrastructure, are received within the timeout period. An infrastructure message is a message that is generated for the purpose of one of the protocols in the channel stack, such as a keep alive or an acknowledgment, rather than containing application data.

  The second inactivity timer is on the service and uses the setting of the binding. This inactivity timer fires if no application messages are received within the timeout period. This specifies, for example, the maximum time a client may take to send at least one message to the server before the server will close the channel used by a session. This behavior ensures that clients cannot hold on to server resources for arbitrary long periods.

  Since the connection is dropped if either inactivity timer fires, increasing once it is greater than has no effect. The default for both of these timeouts is 10 minutes, so you always have to increase both of them to make a difference when using a reliable session.

  If transaction flow is enabled on the binding or the channel, the operation may take longer to execute than the specified timeout. In these circumstances the operation fails due to the expired timeout and the transaction aborts appropriately.

  When security is used with sessions, the value set on the binding is also used as the session timeout.

  Gets or sets the interval of time that a connection can remain inactive, during which no application messages are received, before it is dropped.

- Property
  4.0.0.0
  System.String To be added.

  This user name for the binding is distinct from the specification of the protocol name, which is specified by the property. Each instance of a has a and that together uniquely identify the user name for the binding in the metadata of the service. If you want to add more HTTP bindings, for example, you can name them whatever you want and set all of their schemes to "http". There is no inherent application or machine dispatch based on the . So you avoid the common problem of being unable to register additional handlers for well-known protocols. You can also easily work with multiple versions of a binding side-by-side by giving each version a different name.

  When implemented in a derived class, sets the URI scheme that specifies the transport used by the channel and listener factories that are built by the bindings.

- Property
  4.0.0.0
  System.TimeSpan To be added.

  If transaction flow is enabled on the binding or the channel, the operation may take longer to execute than the specified timeout. In these circumstances the operation fails due to the expired timeout and the transaction aborts appropriately.

  Gets or sets the interval of time provided for a write operation to complete before the transport raises an exception.