Entradas

Mostrando las entradas con la etiqueta IIS

Optimizaciones en aplicación WEB GeneXus Evolution 3.

Imagen
Migramos una aplicación WEB de Evolution 2 a Evolution 3 usando Smooth en la propiedad "Web Experience". Los resultados son muy buenos, pues ahora tenemos mas control sobre cuando la aplicación debe hacer refresh y por lo tanto podemos mejorar mucho la performance. Este proceso, me llevó a mirar con mas detalles los request que hace una aplicación al server, para tratar de optimizarlos. Request a Favicon.ico.  Realizo mis pruebas usando Google Chrome como navegador y reviso lo request con las developer tools. Uno que me llamo mucho la atención, fue cuando iba a buscar el favicon.ico, que no tiene nada que ver con la aplicación, sino que lo hace Chrome para poner el icono en el tab del navegador. Al no tener ninguna referencia a esa imagen, Chrome va a buscar el icono a la raiz del sitio web (ej: www.servidor.com) En particular en dicho sitio tenia en la raíz un redirect a otra pagina, que traia 40Kb. O sea, cada request a la aplicación, hacia un request al favicon...

Variables Websession en cluster con balanceo de carga

Imagen
Me tocó instalar una aplicación GeneXus web, que utiliza variables websession en un cluster con NLB (varios servidores con balanceo de carga entre ellos. La aplicación hacia un Login guardando información de si el usuario estaba conectado o no en una websession. Cuando la aplicación era instalado en un servidor único, funcionaba correctamente. Cuando la persona se conectaba, podía hacer varias operaciones manteniendo la sesión. Si no tenia actividad por 20 minutos, desconectaba al usuario (el tiempo es configurable). El problema que se daba cuando funcionaba en el cluster, era que el usuario se conectaba y se desconectaba todo el tiempo, sin un patrón muy claro. Busque en el WEBSAC y no encontré nada. Como por defecto las aplicaciones ASP.NET guardan las websession en la memoria del working process del IIS. Como en esta aplicación pueden haber mas de un working process, se pierden las sesiones y po...

Como poner un webpanel como pagina inicial en IIS

Imagen
Varias veces he tenido que hacer esto y nunca me acuerdo como hacerlo. Por eso decidí escribirlo una vez, postearlo y dejarlo como referencia Problema: Tengo una aplicación web hecha con GeneXus 9.0 y .NET, funcionando con IIS 6.0. Quiero hacer que cuando los usuarios pongan http://www.servidor.com/vd/ se cargue automaticamente lo que esta en http://www.servidor.com/vd/hwebpanelprincipal.aspx. Solución: La solución mas fácil que hemos encontrado es dejar un documento html vacío que se llame default.htm (puede ser cualquier nombre) y ponerlo en el TAB Documents y marcar el check de "Enable default document content page" y poner el nombre de dicho documento en la lista. Después hay que hacer que ese documento redireccione al webpanel deseado, como se muestra en la figura. Con estos pasos se logra redireccionar la página al webpanel que se quiera.

IIS y Cache

Imagen
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 muc...

Procesar IIS Log con sentencias SQL

Hace un tiempo me llamaron de una empresa pues estaba teniendo problemas con el servidor IIS pues tenía tiempos de respuestas malos. Se necesitaba un diagnóstico rápido para poder ver que era lo que estaba sucediendo. La aplicacion estaba generada con GeneXus 8.0 y .NET, y corria sobre un IIS 6. Si bien en otros casos utilizamos herramientas mas sofisticadas (por ejemplo el awstats , que es gratis y bueno) para el procesamiento de logs, en este caso como se necesitaban realizar algunas consultas puntuales ad-hoc, decidí utilizar el viejo y querido SQL server para procesar los logs. El paso a paso de lo que hice fue: 1) Copiar los archivos de los IIS para mi disco local. Eran de unos 130Mb x dia x Servidor del NLB y tenian el formato exAAMMDD.log que es el default del IIS 6. Para procesar varios archivos, en una sola pasada, lo mejor es concatenarlos todos de la forma copy ex*.log logiis.txt 2) Agregarle una linea de títulos... (para que quede mas fácil de cargar con DTS) Es la tercer...

Applications Pools en IIS 6.0

Cuando se desarrolla con .NET aplicaciones WEB, muchas veces cuando se cambia del Framework 1.1 a compilar con el Framework 2.0, aparece el error "It is not possible to run two different versions of ASP.NET in the same IIS process. Please use the IIS Administration Tool to reconfigure your server to run the application in a separate process." El mensaje es muy claro y significa que todas las aplicaciones de un Application Pool debe ejecutar con la misma version de Framework. Lo mas sencillo, consisten en configurar todas las aplicaciones o directorios virtuales a que ejecuten con el .NET Framework 2.0. Esto se realiza con la oreja ASP.NET de las propiedades del IIS. De esta forma, todas las aplicaciones del servidor ejecutaran con ese framework por default. No siempre es posible migrar todas las aplicaciones de una sola pasada, por lo que nos podemos ver obligados a mantener algunas aplicaciones con el Framework 1.1 y otras con el Framework 2.0. En este caso, es necesario cr...

Instalando GXChart local

Imagen
Hice una instalación de GXChart local, para lograr tener gráficas en una aplicación web. Ese servidor de gráficas lo teníamos funcionando sin problemas en otro servidor y todo había funcionado sin problemas. Decidimos poner el servidor de GXchart en www.concepto.com.uy/GXchartService y no funcionaron mas las gráficas. El motivo principal es que el raíz del webservice, esta apuntando a un sitio creado con GxPortal. En dicho sitio hay un web.config la configuración necesaria para la ejecución de una aplicación Genexus generada con GXPortal. La instalación del GXchart, genera un directorio físico y virtual que queda bajo el directorio default (lo cual esta muy bien) pero trae como inconveniente que se heredan las propiedades de la aplicacion raiz a las aplicaciones que se instalen bajo este. Entonces, al intentar generar cualquier gráfica, se intentaba cargar también las clases necesarias para ejecutar gxportal, como por ejemplo gxclasses.dll (que no existen en la aplicacion Gxchart). Po...