ServiceStack: uso de la compresión gzip / deflate con solicitudes JSONP

Tengo un servicio ServiceStack que comprime la respuesta usandoRequestContext.ToOptimizedResult(), p.ej.:

[Route("/numbers/search")]
public class FindNumbers
{
}

public object Get(FindNumbers query)
{
    var data = new List<string> { "One", "Two", "Three" };
    return RequestContext.ToOptimizedResult(data);
}

Esto funciona perfectamente cuando se emite una solicitud como:

GET http://myhost:13487/numbers/search.json

Y se comprime como se espera con elAccept-Encoding encabezado de solicitud:

Accept-Encoding: gzip,deflate,sdch

También puedo emitir una solicitud JSONP:

GET http://myhost:13487/numbers/search?callback=func

que devuelve correctamente unapplication/javascript devolución de llamada (sin comprimir).

EL PROBLEMA

Cuando agrego elAccept-Encoding solicitar el encabezado a la solicitud JSONP, la respuesta son los datos JSON comprimidos según la solicitud JSON original, y no una información comprimidaapplication/javascript llamar de vuelta.

¿Hay alguna razón obvia que me esté perdiendo para este comportamiento, o es simplemente un error en ServiceStack? Mi expectativa sería recibir una devolución de llamada JSONP comprimida en la respuesta, pero estoy bastante verde con JSONP y puede haber una buena razón para la recuperación.

Tenga en cuenta que estoy en proceso de trabajar con la fuente de ServiceStack, pero me di cuenta de que obtendría esto porque más cerebros son mejores que uno ...

Gracias por adelantado

EDITAR

Por lo tanto, he rastreado el problema en la siguiente fuente

https://github.com/ServiceStack/ServiceStack/blob/5d09d439cd1a13712411552e2b3ede5a71af2ee5/src/ServiceStack/Host/Handlers/GenericHandler.cs#L79

y

https://github.com/ServiceStack/ServiceStack/blob/5d09d439cd1a13712411552e2b3ede5a71af2ee5/src/ServiceStack/Host/RestHandler.cs#L107

if (doJsonp && !(response is CompressedResult))
    return httpRes.WriteToResponse(httpReq, response, (callback + "(").ToUtf8Bytes(),")".ToUtf8Bytes());

return httpRes.WriteToResponse(httpReq, response);

Entonces, si la respuesta es un resultado comprimido, entonces, independientemente del requisito para JSONP a través de?callback=func la respuesta simplemente contendrá el json comprimido (en el caso del ejemplo anterior), que coincide con mis conclusiones anteriores. Así que parece que la envoltura de devolución de llamada jsonp debe aplicarse antes en la pila de llamadas.

Respuestas a la pregunta(1)

Su respuesta a la pregunta