internal override IAsyncResult BeginProcessInboundRequest(ReplyChannelAcceptor replyChannelAcceptor, Action dequeuedCallback, AsyncCallback callback, object state) { try { this.wasProcessInboundRequestSuccessful = false; this.TraceProcessInboundRequestStart(); this.replyChannelAcceptor = replyChannelAcceptor; this.dequeuedCallback = dequeuedCallback; HttpRequestMessageHttpInput httpRequestMessageInput = (HttpRequestMessageHttpInput)this.HttpInput; this.httpRequestMessage = httpRequestMessageInput.HttpRequestMessage; this.httpRequestMessage.Properties.Add(HttpPipelineKey, this); lock (this.ThisLock) { this.transportIntegrationHandlerTask = this.transportIntegrationHandler.ProcessPipelineAsync(this.httpRequestMessage, this.cancellationTokenSource.Token); } this.SendHttpPipelineResponse(); this.TraceProcessInboundRequestStop(); this.wasProcessInboundRequestSuccessful = true; return(new CompletedAsyncResult(callback, state)); } catch (OperationCanceledException) { if (TD.HttpPipelineFaultedIsEnabled()) { TD.HttpPipelineFaulted(this.EventTraceActivity); } this.cancellationTokenSource.Cancel(); throw; } catch (Exception ex) { if (!Fx.IsFatal(ex)) { if (TD.HttpPipelineFaultedIsEnabled()) { TD.HttpPipelineFaulted(this.EventTraceActivity); } this.SendAndClose(internalServerErrorHttpResponseMessage); } throw; } }