internal void OnHandleServerSessionPreamble(ServerSessionPreambleConnectionReader serverSessionPreambleReader, ConnectionDemuxer connectionDemuxer) { Uri via = serverSessionPreambleReader.Via; TChannelListener channelListener = GetChannelListener(via); if (channelListener != null) { ISessionPreambleHandler sessionPreambleHandler = channelListener as ISessionPreambleHandler; if (sessionPreambleHandler != null && channelListener is IChannelListener <IDuplexSessionChannel> ) { sessionPreambleHandler.HandleServerSessionPreamble(serverSessionPreambleReader, connectionDemuxer); } else { serverSessionPreambleReader.SendFault(FramingEncodingString.UnsupportedModeFault); throw DiagnosticUtility.ExceptionUtility.ThrowHelperError( new ProtocolException(SR.GetString(SR.FramingModeNotSupported, FramingMode.Duplex))); } } else { serverSessionPreambleReader.SendFault(FramingEncodingString.EndpointNotFoundFault); throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new EndpointNotFoundException(SR.GetString(SR.DuplexSessionListenerNotFound, via.ToString()))); } }
internal void OnHandleServerSessionPreamble(ServerSessionPreambleConnectionReader serverSessionPreambleReader, ConnectionDemuxer connectionDemuxer) { Uri via = serverSessionPreambleReader.Via; TChannelListener channelListener = this.GetChannelListener(via); if (channelListener != null) { ISessionPreambleHandler handler = channelListener as ISessionPreambleHandler; if ((handler != null) && (channelListener is IChannelListener <IDuplexSessionChannel>)) { handler.HandleServerSessionPreamble(serverSessionPreambleReader, connectionDemuxer); return; } serverSessionPreambleReader.SendFault("http://schemas.microsoft.com/ws/2006/05/framing/faults/UnsupportedMode"); throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ProtocolException(System.ServiceModel.SR.GetString("FramingModeNotSupported", new object[] { FramingMode.Duplex }))); } serverSessionPreambleReader.SendFault("http://schemas.microsoft.com/ws/2006/05/framing/faults/EndpointNotFound"); throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new EndpointNotFoundException(System.ServiceModel.SR.GetString("DuplexSessionListenerNotFound", new object[] { via.ToString() }))); }