IDuplexSession.CloseOutputSession Method ()


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Terminates the outbound session that indicates that no more messages will be sent from this endpoint on the channel associated with the session.

Namespace:   System.ServiceModel.Channels
Assembly:  System.ServiceModel (in System.ServiceModel.dll)

void CloseOutputSession()

Calling CloseOutputSession() signals to the other side of the session that it should return null from any outstanding or subsequent calls made to Receive. CloseOutputSession is idempotent, so calling it again has no effect.

Terminating the outbound session does not affect the incoming session and so makes no statement about the ability to receive messages on the session associated with the input channel.

Notes to Implementers:

CloseOutputSession is a session method that can interact with the IDuplexSessionChannel that owns the session. In particular, if your session lifetime is put together with your channel lifetime (like it is with TCP and reliable session and security):

  • If CloseOutputSession is called before Close is called on the channel, Close should wait for CloseOutputSession to finish.

  • If the channel is in the Created or Opening state, CloseOutputSession should throw an InvalidOperationException.

  • If the channel is in the Faulted state, CloseOutputSession should throw a CommunicationObjectFaultedException.

  • The channel should fault if CloseOutputSession throws.

  • The implementation of Close on the channel should call CloseOutputSession and then verify that Receive returns null, which indicates that CloseOutputSession was called from the other side of the session.

Universal Windows Platform
Available since 8
.NET Framework
Available since 3.0
Portable Class Library
Supported in: portable .NET platforms
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Return to top