Por lo tanto, estoy intentando que mi aplicación envíe sus respuestas JSON mediante compresión dinámica y gzip. Lamentablemente esto no está funcionando. Toda la compresión estática en el servidor funciona bien, pero no es dinámica.Configurar IIS 7.5 para enviar respuestas JSON gzipped, NO_MATCHING_CONTENT_TYPE
he establecido esto, añadiendo:
<add mimeType="application/json" enabled="true" />
<add mimeType="application/json; charset=utf-8" enabled="true" />
Para la sección de <dynamicTypes>
<httpCompression>
en el archivo applicationHost.config. Estoy usando Charles para inspeccionar las solicitudes HTTP y puedo verificar que estoy enviando las solicitudes con el conjunto de encabezado Accept-Encoding: gzip, deflate
. Lo he intentado con Accept: */*
y Accept: application/json
. Cuando no funcionaba habilité el registro de rastreo de "Solicitud fallida" para encontrar el código de error para DYNAMIC_COMPRESSION_NOT_SUCCESS
, que era NO_MATCHING_CONTENT_TYPE
.
He estado intentando investigar en foros y Google, pero todo lo que puedo ver es que la gente dice que usar el mimeType con el juego de caracteres especificado soluciona el problema, pero en mi caso todavía no funciona y puedo verificar que la respuesta vuelve con un encabezado que dice Content-Type: application/json; charset=utf-8
los criterios de valoración que sirven las respuestas JSON son servicios web estándar .NET ASMX con anotada [ScriptService()]
en la clase y [ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)]
en el método. Devuelven JSON bien, pero no puedo hacer que la compresión dinámica funcione por mi propia vida.
ya que estos son métodos web normales, así También he añadido:
<add mimeType="text/xml" enabled="true" />
<add mimeType="text/xml; charset=utf-8" enabled="true" />
para tratar de gzip las respuestas XML. Lo que es frustrante es que esta compresión funciona mientras que enviar JSON desde el mismo método no funciona. En este punto, estoy perdido.
Gracias, en realidad lo resolví hace algún tiempo por mi cuenta pero no recuerdo cómo lo hice y desde entonces he abandonado la empresa en la que estaba. Ahora sí creo que estaba usando un script con esos comandos e integrándolo en la definición de MSBuild para la implementación de la aplicación. – Sloloem
Pasé todo el día buscando en Google por qué la compresión no funcionaba para mí. Por alguna razón, solo al ejecutar tu script resolví mi problema (configurarlo directamente en el archivo apphost no). ¡Gracias! – LazyBoy
¿Por qué tiene los mismos tipos MIME en las secciones estáticas y dinámicas? –