asp.net - peticion - leer json en c#
¿Cómo puedo obtener ASP.NET AJAX para enviar su respuesta JSON con compresión GZip? (4)
¿Qué navegador estás usando? Hay un error en IE 6 que causa errores en la compresión. Así que ASP.NET AJAX desactiva la compresión para los navegadores IE 6:
http://weblogs.asp.net/scottgu/archive/2005/06/28/416185.aspx
Además, ¿habilitó la compresión para archivos ASMX?
He habilitado la compresión dentro de IIS7 y funciona como se esperaba en todas las respuestas, excepto en las creadas por ASP.NET AJAX. Tengo un servicio web que proporciona datos al cliente. Cuando se llama directamente al servicio web, está comprimido correctamente. Sin embargo, cuando se llama a través de ASP.NET AJAX, la respuesta JSON no se comprime.
¿Cómo puedo obtener ASP.NET AJAX para enviar su respuesta JSON con compresión GZip?
IIS7 usa la codificación de contenido para decidir si comprime la respuesta (suponiendo, por supuesto, que el navegador pueda aceptar gzip). Están configurados en applicationHost.config, y de manera predeterminada la lista es
<dynamicTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/x-javascript" enabled="true" />
<add mimeType="*/*" enabled="false" />
</dynamicTypes>
Si llama al servicio web directamente, la respuesta XML tiene un tipo de contenido de text/xml
, que se comprime. Cuando AJAX lo llama, la respuesta JSON tiene un tipo de contenido de application/json
, por lo que no está comprimido. Agregar lo siguiente a applicationHost.config debería arreglar eso ...
<add mimeType="application/json" enabled="true" />
Lo último que verifiqué fue que el gzip era algo que hace IIS (cuando está configurado correctamente) y, por supuesto, cuando el navegador envía los encabezados necesarios
En general, no debes hacer esto a menos que no te importe arrojar órdenes de magnitud sobre la cantidad de poder del servidor en tus aplicaciones ...
Además, no solo la CPU del servidor sino también la CPU del cliente se convierten en un problema cuando haces esto ...
¡Esto concluye con que tu aplicación se vuelve MUCHO más lenta si registras todas tus respuestas de Ajax ...!