void CreateConnectionDemuxer()
        {
            IConnectionListener connectionListener = new BufferedConnectionListener(listener, MaxOutputDelay, ConnectionBufferSize);

            if (DiagnosticUtility.ShouldUseActivity)
            {
                connectionListener = new TracingConnectionListener(connectionListener, this.ListenUri);
            }

            connectionDemuxer = new ConnectionDemuxer(connectionListener,
                                                      MaxPendingAccepts, MaxPendingConnections, ChannelInitializationTimeout,
                                                      IdleTimeout, MaxPooledConnections,
                                                      OnGetTransportFactorySettings,
                                                      OnGetSingletonMessageHandler,
                                                      OnHandleServerSessionPreamble,
                                                      OnDemuxerError);
            connectionDemuxer.StartDemuxing(this.GetOnViaCallback());
        }
        void CreateConnectionDemuxer()
        {
            IConnectionListener connectionListener = new BufferedConnectionListener(listener, MaxOutputDelay, ConnectionBufferSize);
            if (DiagnosticUtility.ShouldUseActivity)
            {
                connectionListener = new TracingConnectionListener(connectionListener, this.ListenUri);
            }

            connectionDemuxer = new ConnectionDemuxer(connectionListener,
                MaxPendingAccepts, MaxPendingConnections, ChannelInitializationTimeout,
                IdleTimeout, MaxPooledConnections,
                OnGetTransportFactorySettings,
                OnGetSingletonMessageHandler,
                OnHandleServerSessionPreamble,
                OnDemuxerError);

            connectionDemuxer.StartDemuxing(onViaCallback);
        }