public override void StartListenerChannel(IListenerChannelCallback listenerChannelCallback, IAdphManager adphManager)
        {
            _adphManager = adphManager;
            var channelId = listenerChannelCallback.GetId();

            Trace.TraceInformation($"{nameof(RabbitMQTaskQueueProcessProtocolHandler)}.{nameof(StartListenerChannel)}: Starting listener channel for channel id [{channelId}].");

            var setup = listenerChannelCallback.GetBlobAsListenerChannelSetup();
            lock (_appInstanceTable)
            {
                if (!_appInstanceTable.ContainsKey(channelId))
                {
                    _appInstanceTable.Add(channelId, setup);
                }
            }
            adphManager.StartAppDomainProtocolListenerChannel(setup.ApplicationId, Constants.Scheme, listenerChannelCallback);
            Trace.TraceInformation($"{nameof(RabbitMQTaskQueueProcessProtocolHandler)}.{nameof(StartListenerChannel)}: Started listener channel for channel id [{channelId}].");
        }
        public override void StartListenerChannel(IListenerChannelCallback listenerChannelCallback)
        {
            var listenerChannelId = listenerChannelCallback.GetId();
            Trace.TraceInformation($"{nameof(RabbitMQTaskQueueAppDomainProtocolHandler)}.{nameof(StartListenerChannel)}: Starting listener channel for channel id [{listenerChannelId}].");

            MessageReceived -= OnMessageReceived;
            MessageReceived += OnMessageReceived;
            _listenerChannelCallback = listenerChannelCallback;
            var setup = listenerChannelCallback.GetBlobAsListenerChannelSetup();

            var callback = new WasInteropServiceCallback(_appDomainId);
            _channelFactory = new DuplexChannelFactory<IWasInteropService>(new InstanceContext(callback), BindingFactory.Create(setup.MessagePublicationNotificationServiceUri), new EndpointAddress(setup.MessagePublicationNotificationServiceUri));

            _wasInteropSvc = _channelFactory.CreateChannel();
            callback.Service = _wasInteropSvc;

            _wasInteropSvc.Register(listenerChannelId, _appDomainId, setup.ApplicationPath);
            if (_autoStartServices)
            {
                AutoStartServices(setup.ApplicationPath, callback);
            }

            listenerChannelCallback.ReportStarted();
            Trace.TraceInformation($"{nameof(RabbitMQTaskQueueAppDomainProtocolHandler)}.{nameof(StartListenerChannel)}: Started listener channel for channel id [{listenerChannelId}].");
        }