IDuplexSession.CloseOutputSession Method
[ This article is for Windows Phone 8 developers. If you’re developing for Windows 10, see the latest documentation. ]
Terminates the outbound session that indicates that no more messages will be sent from this endpoint on the channel associated with the session.
Assembly: System.ServiceModel (in System.ServiceModel.dll)
Calling CloseOutputSession signals to the other side of the session that it should return Nothing 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 ImplementersCloseOutputSession 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:
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 an exception.
The implementation of Close on the channel should call CloseOutputSession and then verify that Receive returns Nothing, which indicates that CloseOutputSession was called from the other side of the session.