WCF Content-Length HTTP header en mensaje saliente

Estoy en una situación difícil en la que un punto final de servicio web Java alojado en un servidor HTTP de IBM (IHS) requiere un encabezado Content-Length, aunque supuestamente se ajusta a HTTP / 1.1. Si envío el encabezado, todo funciona. Si lo dejo apagado, recibo una respuesta de error 500 que me informa que el cuerpo de mi entidad POST estaba vacío (aunque no lo estaba).

Hemos invertido mucho tiempo en nuestro cliente de WCF para estos servicios (desarrollados por un tercero) y parece que no puedo encontrar una buena manera de agregar un encabezado de longitud de contenido a la solicitud. Puedo agregar encabezados arbitrarios (es decir, X-Dan-Lynn-Header) a la solicitud usando un IClientMessageInspector como se describe enpublicaciones de blog como esta, pero WCF parece ignorar un encabezado Content-Length.

Mis opciones son:

a) averiguar cómo obligar a WCF a añadir un encabezado de longitud de contenido a la solicitud HTTP POST o,

b) encuentre o escriba un proxy HTTP extremadamente simple pero transparente que decore la solicitud con un encabezado Content-Length.

¡Gracias!

Ejemplo IClientMessageInspector.BeforeSendRequest:

public object BeforeSendRequest(ref Message request, IClientChannel channel)
{
    var buffer = request.CreateBufferedCopy(Int32.MaxValue);
    var tempRequest = buffer.CreateMessage();


    HttpRequestMessageProperty httpRequest = GetHttpRequestProp(tempRequest);
    if (httpRequest != null)
    {
        if (string.IsNullOrEmpty(httpRequest.Headers[HttpRequestHeader.ContentLength]))
        {
            httpRequest.Headers.Add(HttpRequestHeader.ContentLength, GetMessageLength(buffer).ToString());
            httpRequest.Headers.Add("X-Dan-Lynn-Header", "abcdefghijk");
        }

    }

    request = tempRequest;
    request.Properties[HttpRequestMessageProperty.Name] = httpRequest;

    return null;
}

Ejemplo de solicitud generada por WCF (y el IClientMessageInspector anterior):
POST /path/to/service HTTP/1.1
Content-Type: text/xml; charset=utf-8
X-Dan-Lynn-Header: abcdefghijk
SOAPAction: "http://tempuri.org/path/to/service/action"
Host: service.host.tld
Transfer-Encoding: chunked
Connection: Keep-Alive


<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
        .......body removed for clarity......

    </s:Body>
</s:Envelope>

Respuestas a la pregunta(3)

Su respuesta a la pregunta