private void host_Faulted(object sender, EventArgs e)
        {
            var logBuffer = new LogBuffer();

            try
            {
                logBuffer.Critical("The BusReceiverServiceHost faulted. Attempting to re-open...");

                this.serviceHost.Abort();
                this.serviceHost = this.CreateServiceHostInternal();
                this.serviceHost.Open();

                logBuffer.Information("BusReceiverServiceHost re-opened.");
            }
            finally
            {
                logBuffer.FlushToLog(LogPriority.Application, LogCategory.ServiceBus);
            }
        }
 private BusReceiverServiceHost CreateServiceHostInternal()
 {
     var host = new BusReceiverServiceHost(this.baseAddresses);
     host.Faulted += new EventHandler(host_Faulted);
     return host;
 }
 protected override ServiceHost CreateServiceHost(Type serviceType, Uri[] baseAddresses)
 {
     this.baseAddresses = baseAddresses;
     this.serviceHost = this.CreateServiceHostInternal();
     return this.serviceHost;
 }