void CreateChannel(EndpointAddress address, Uri listenUri)
            {
                Exception exception = null;

                try
                {
                    this.innerChannel = this.discoveryClientChannelBase.innerChannelFactory.CreateChannel(
                        address,
                        listenUri);
                }
                catch (ArgumentException argumentException)
                {
                    exception = argumentException;
                }
                catch (InvalidOperationException invalidOperationException)
                {
                    exception = invalidOperationException;
                }
                catch (CommunicationException communicationException)
                {
                    exception = communicationException;
                    this.CompleteOnce(communicationException);
                }
                finally
                {
                    if (exception != null && TD.InnerChannelCreationFailedIsEnabled())
                    {
                        TD.InnerChannelCreationFailed(address.ToString(), listenUri.ToString(), exception);
                    }
                }
            }
 static void TraceInnerChannelFailure(TChannel innerChannel, EndpointAddress to, Uri via, Exception exception)
 {
     if (innerChannel == null && TD.InnerChannelCreationFailedIsEnabled())
     {
         TD.InnerChannelCreationFailed(to.ToString(), via.ToString(), exception);
     }
     else if (innerChannel != null && TD.InnerChannelOpenFailedIsEnabled())
     {
         TD.InnerChannelOpenFailed(to.ToString(), via.ToString(), exception);
     }
 }