IIS y Cache


El problema:
Tengo una aplicación desarrollada con Genexus 9.0 U3, .NET y SQL Server 2005, que funciona muy bien en la intranet y desde algunos lugares de internet. Sin embargo en algunos otros lados la performance a traves de internet es muy mala.

Alexander investigó el problema y me ayudó a configura IIS para que mejorara la performance.
Lo que vimos es que al estar atrás de un proxy (en este caso un ISA Server 2004) , el mismo modifica los HTTP header generados por Genexus y deja de cachear el contenido a nivel del cliente.

Para lograr que la aplicación mantenga esos valores, lo que se hace es:

1) Parado en el directorio virtual (en le administrador del IIS) se va a Propiedades.
2) En la oreja de HTTP Header, agregar el encabezado con valor
Custom header name: Cache-Control
Custom header value: max-age:1800, must-revalidate

Estos encabezados no son modificados por el proxy y con esto logramos bajar la performance de un panel pesado (con master page, 6 webcomponets, 3 graficas y muchos links) de 23 segundos a unos 9-11 segundos.

Comentarios

  1. Podrias escribir un post sobre que hace el
    if 1=0

    endif
    gracias

    ResponderBorrar
    Respuestas
    1. Emiliando, algunas veces veces se agrega el codigo:

      if 1=0
      Objeto1.call()
      endif

      cuando se quiere que el programa tenga una referencia hacia el Objeto1, por ejemplo cuando se llama a objeto y algun otro objeto en forma dinamica en otra parte del codigo, pero no se quiere que ejecute el Objeto1 en ninguan parte especifica.

      De esta forma, al especificar y compilar el objeto original, tambien se va a compilar el objeto llamado Objeto1.

      Borrar

Publicar un comentario

1) Lee el post
2) Poné tu opinión sobre el mismo.
Todos los comentarios serán leidos y la mayoría son publicados.

Entradas más populares de este blog

Aplicación monolítica o distribuida?

La nefasta influencia del golero de Cacho Bochinche en el fútbol uruguayo

Funcionalidades de GeneXus que vale la pena conocer: DATE Constants.