protected override async Task OnReplyAsync(Message message, CancellationToken token) { ICompressedMessageEncoder compressedMessageEncoder = _connection.MessageEncoderFactory.Encoder as ICompressedMessageEncoder; if (compressedMessageEncoder != null && compressedMessageEncoder.CompressionEnabled) { compressedMessageEncoder.AddCompressedMessageProperties(message, _connection.FramingDecoder.ContentType); } await StreamingConnectionHelper.WriteMessageAsync(message, _connection, false, _connection.ServiceDispatcher.Binding, token); }
public override HttpOutput GetHttpOutput(Message message) { // TODO: Enable KeepAlive setting //if (!_httpBindingElement.KeepAlive) //{ // aspNetContext.Response.Headers["Connection"] = "close"; //} ICompressedMessageEncoder compressedMessageEncoder = HttpTransportSettings.MessageEncoderFactory.Encoder as ICompressedMessageEncoder; if (compressedMessageEncoder != null && compressedMessageEncoder.CompressionEnabled) { string acceptEncoding = _aspNetContext.Request.Headers[HttpChannelUtilities.AcceptEncodingHeader]; compressedMessageEncoder.AddCompressedMessageProperties(message, acceptEncoding); } return(HttpOutput.CreateHttpOutput(_aspNetContext, HttpTransportSettings, message, HttpMethod)); }
public override HttpOutput GetHttpOutput(Message message) { HttpInput httpInput = this.GetHttpInput(false); // work around http.sys keep alive bug with chunked requests, see MB 49676, this is fixed in Vista if ((httpInput != null && httpInput.ContentLength == -1 && !OSEnvironmentHelper.IsVistaOrGreater) || !this.KeepAliveEnabled) { result.SetConnectionClose(); } ICompressedMessageEncoder compressedMessageEncoder = this.Listener.MessageEncoderFactory.Encoder as ICompressedMessageEncoder; if (compressedMessageEncoder != null && compressedMessageEncoder.CompressionEnabled) { string acceptEncoding = this.result.GetAcceptEncoding(); compressedMessageEncoder.AddCompressedMessageProperties(message, acceptEncoding); } return(new HostedRequestHttpOutput(result, Listener, message, this)); }
public override HttpOutput GetHttpOutput(Message message) { // work around http.sys keep alive bug with chunked requests, see MB 49676, this is fixed in Vista if (listenerContext.Request.ContentLength64 == -1 && !OSEnvironmentHelper.IsVistaOrGreater) { listenerContext.Response.KeepAlive = false; } else { listenerContext.Response.KeepAlive = listener.KeepAliveEnabled; } ICompressedMessageEncoder compressedMessageEncoder = listener.MessageEncoderFactory.Encoder as ICompressedMessageEncoder; if (compressedMessageEncoder != null && compressedMessageEncoder.CompressionEnabled) { string acceptEncoding = listenerContext.Request.Headers[HttpChannelUtilities.AcceptEncodingHeader]; compressedMessageEncoder.AddCompressedMessageProperties(message, acceptEncoding); } return(HttpOutput.CreateHttpOutput(listenerContext.Response, Listener, message, this.HttpMethod)); }
private static void ValidateContentType(FramingConnection connection, ServerSessionDecoder decoder) { var messageEncoderFactory = connection.MessageEncoderFactory; MessageEncoder messageEncoder = messageEncoderFactory.CreateSessionEncoder(); connection.MessageEncoder = messageEncoder; if (!messageEncoder.IsContentTypeSupported(decoder.ContentType)) { // TODO: Send fault response //SendFault(FramingEncodingString.ContentTypeInvalidFault, ref timeoutHelper); throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new ProtocolException(SR.Format( SR.ContentTypeMismatch, decoder.ContentType, messageEncoder.ContentType))); } ICompressedMessageEncoder compressedMessageEncoder = messageEncoder as ICompressedMessageEncoder; if (compressedMessageEncoder != null && compressedMessageEncoder.CompressionEnabled) { compressedMessageEncoder.SetSessionContentType(decoder.ContentType); } }