Saul Remis

Developing ideas

Cómo hacer correr un WindowsServer IIS y no morir en el intento

Uno de los últimos problemas a los que me he tenido que enfrentar últimamente, ha sido el montar en local un WindowServer con iis 7.0. en Windows7. En un primer momento parecía una area sencilla ya que Windows ya venía instalado (en teoría) con todo lo necesario. Pues bien, no es así…

Una vez tenía preparada mi web en ASP.NET, con acceso a bases de datos, empieza mi periplo.

MANUAL PARA MONTAR UN SERVIDOR WEB:

Primero debemos de saber que Windows solo nos permite montar un solo servidor de paginas web y tambien un solo servidor FTP. Otra limitacion es que nos permite hasta un maximo de 10 conexiones TCP simultaneas.

Si el servidor de paginas web lo montamos para una red local solo deberemos conocer la direccion IP del ordenador en el cual instalaremos el servidor, si lo hacemos para dar servicio de paginas web a internet tendremos que tener una conexion a internet con una IP fija, esto normalmente sucede cuando nuestra conexion es del tipo de banda ancha ( por ejemplo es el caso de ADSL ).

Primero tendremos que instalar el servidor en nuestro Windows7 para ello hacemos lo siguiente: vamos a INICIO -> PANEL DE CONTROL -> PROGRAMAS Y CARACTERÍSTICAS y pinchamos en “Activar o desactivar las características de Windows”

Tendremos que seleccionar la instalacion de “Servicios de Internet Information Server o IIS”, pichamos luego en detalles y veremos lo siguiente:

Las opciones mas comunes para montar un servidor web son las que hemos seleccionado en la imagen anterior.

Pinchamos en aceptar y comenzara la instalacion…

Una vez que hayamos terminado la instalacion podemos ver la consola de administracion de nuestro sitio WEB o FTP. Para abrir la consola vamos a INICIO -> PANEL DE CONTROL -> HERRAMIENTAS ADMINISTRATIVAS y pinchamos en “Administrador de Internet Information Services (IIS)”, veremos la siguiente pantalla:

Vemos que la ventana tiene dos paneles ( izquierdo y derecho ), en la izquierdo seleccionamos una opcion del arbol y en la derecha veremos los detalles de la seleccion.

En la imagen podemos ver en la parte de la derecha el nombre del equipo en el que hemos instalado el servidor WEB, en nuestro caso se llama “PAUN449NPC”, luego vemos si es un equipo local y la version del Internet Information Server que estamos usando.

Por defecto el nombre de nuestro sitio WEB es “Default Web Site” podremos cambiar el nombre en cualquier momento, simplemente pinchamos dos veces en “Default Web Site” y podremos modificarlo.

Ahora veremos algunas de las opciones mas genereales para poder montar una servidor de pagina WEB. Hacemos click sobre “Default Web Site” y en la columna de la derecha son saldrán las opciones de la web.

Si clickamos en “Configuración básica”, obtenemos la siguiente ventana que debemos configurar como se muestra:

-Grupo de aplicaciones: Classic .NET AppPool (como usaremos IIS 7.0, es necesario)

-Ruta de acceso a la web(root)

Si posteriormente hacemos click en Seleccionar, nos saldrá la ventana de seleccionar grupo de aplicaciones que debe mostrarse como arriba. Puede ocurrir que nos muestre Framework 2.0 (lo modificaremos más adelante).

Si por último pinchamos en “Probar configuración…”

Deberían salir los dos ticks verdes. Si no es así es que faltan algunos permisos de escritura o lectura para el usuario en uso.

Con estas recomendaciones hemos terminado de montar de forma general nuestro servidor de paginas web. Sin embargo, en su ejecución empezaron a saltar los siguientes errores que parecen ser relativamente comunes:

Error HTTP 500.19 – Internal Server Error

No se puede obtener acceso a la página solicitada porque los datos de configuración relacionados de la página no son válidos.

En este tutorial nos adelantamos a este error y lo solucionamos al inicio en la selección de características de windows, activando:

-Compatibilidad con la administración de IIS6

-ASP.NET

-Extensibilidad .NET

-Extensiones ISAPI

-Autenticación básica

Si el error persiste con un error del tipo:

Error de servidor en application name de aplicación “
Error HTTP 500.19 – Error interno del servidor 
HRESULT: 0 X 80070005
Descripción de HRESULT
No se puede tener acceso a la página solicitada porque los datos de configuración de la página no están válidos.

La solución es dar permisos al usuario IIS_IUSRS:

Conceder el permiso de lectura al grupo IIS_IUSRS para el archivo ApplicationHost.config o para el archivo Web.config. Para ello, siga estos pasos:

  1. En el Explorador de Windows, busque el archivo ApplicationHost.config que está asociado con el sitio Web o busque el archivo Web.config que está asociado con el sitio Web.
  2. Haga clic en el archivo ApplicationHost.config o haga clic en el archivo Web.config.
  3. Haga clic en Propiedades.
  4. Haga clic en la ficha seguridad y, a continuación, haga clic en Editar.
  5. Haga clic en Agregar.
  6. En el cuadro Escriba los nombres de objeto que desea seleccionar , escriba computername\IIS_IUSRS, haga clic enComprobar nombresy, a continuación, haga clic en Aceptar.

    NotaComputername es el marcador de posición para el nombre del equipo.

  7. Haga clic para activar la casilla de verificación de lectura y, a continuación, haga clic en Aceptar.
  8. En el cuadro de diálogo Propiedades de ApplicationHost.config o en el cuadro de diálogo Propiedades de Web.config , haga clic en Aceptar.

Un error que me saltó posteriormente :

Error 500.23 Se ha detectado una configuracion de asp.net que no se aplica en el modo integrado de canalizacion administrada

Solucionado también en este tutorial al inicio seleccionando como grupo de aplicaciones: Classic .NET AppPool. Más concretamente:

– CLICK DERECHO EN TU APLICACION
– ADMINISTRAR APLICACION
– CONFIGURACION AVANZADA
– EN GRUPO DE APLICACIONES SELECCIONAR: Classic .NET AppPool

Error HTTP 404.17 – Not Found

El contenido solicitado parece ser un script y el controlador de archivos estáticos no lo servirá.

Esto surge en el caso de que no tengamos instalado para funcionar en el servidor el Framework 4.0 con el que programamos el sitio.

Empezamos descargando e instalando al IIS la extencion de net framework 4.O si no la tenemos.

Y sin olvidar utilizar el comando de registrar Asp net en IIS

Ruta “C:\Windows\Microsoft.NET\Framework64\v3.5”
Comando “aspnet_regiis.exe -i”

Cuando tengas comprobado o realizado estos pasos, por utimo configurar el pool de tu Web site al net framework 4.0,

Ruta “C:\Windows\Microsoft.NET\Framework64\v4.0.30319”
Comando “aspnet_regiis.exe -i”

Comprobado y realizado estos pasos, cambias el pool de tu web site para que compile con net framework 4.0 en configuración básica.

ERROR: asp.net:Invalid temp directory in chart handler configuration [c:\TempImageFiles\]

Elimina el acceso a ese directorio en web.config. En AppSettings:

Origen
<add key=”ChartImageHandler” value=”storage=file;timeout=20;dir=c:\TempImageFiles\;” />

Cambio
<add key=”ChartImageHandler” value=”storage=file;timeout=20;” />

Saul Remis

6 comentarios el “Cómo hacer correr un WindowsServer IIS y no morir en el intento

  1. habbolos
    febrero 8, 2013

    Excelente

  2. Anibal Orozco
    abril 13, 2013

    Hola, excelente explicacion,

    yo tengo un problema, desde mi aplicacion para el cliente, obtengo unos datos de una base de datos, estos datos los convierto a un archivo de excel “CSV” separado por comas “,”. guardo el archivo con:

    string DirectorioRaiz = Server.MapPath(“/”) ;
    treamWriter sw = new StreamWriter(DirectorioRaiz + “temp.csv”, false, Encoding.Default);
    sw.Write(Enc.ToString());
    sw.Close();

    una vez hecho eso. quiero abrir ese archivo, desde una instancia de Excel. es aqui donde me marca error:

    Excel.Application ExcelTemplate = new Excel.Application();
    ExcelTemplate.Workbooks.Open(DirectorioRaiz + “temp.csv”);

    Mensaje: Sys.WebForms.PageRequestManagerServerErrorException: No se puede obtener acceso al archivo ‘C:\inetpub\wwwroot\ReporteCFCredit\temp.csv’. Puede haber varios motivos:

    • El nombre del archivo o la ruta no existen.
    • Otro programa está usando el archivo.
    • El libro que está intentando guardar tiene el mismo nombre que otro libro que está abierto .

    El archivo si se crea en esa direccion pero la aplicacion no la puede leer.

    Podrias ayudarme?? muchas gracias.

    • saulremis
      abril 24, 2013

      Que tal Anibal!
      La verdad es que tiene toda la pinta de que tiene que ver conque por algún motivo el archivo no se cierra bien una vez lo creas.

      Yo para testearlo haría un par de cosas:
      Primero por ejemplo puedes hacer un dispose del streamWritter para que te elimine los recursos y cuando vayas a leer el archivo creado yo probaría a hacer:
      if(archivo en este path existe)
      {
      bool conseguido=false;
      While(!conseguido)
      {
      try
      {
      Excel.Application ExcelTemplate = new Excel.Application();
      ExcelTemplate.Workbooks.Open(DirectorioRaiz + “temp.csv”);
      conseguido=true;
      }
      catch
      {
      conseguido=false;
      }
      }
      }

      De esta forma, si te entra en el bucle if, sabes que no es porque esté mal la ruta y solo puede ser uno de los otros motivos. Con el while puedes intentar comprobar si es porque tarda en liberarse el archivo una vez escrito o es que nunca se libera…

      Espero que te sirva de ayuda!!😉

  3. Carlos Aliaga
    mayo 15, 2013

    Me fue muy útil, gracias por los tips

  4. Alejandro
    febrero 25, 2014

    Eres un grande,que lo sepas

    • saulremis
      febrero 26, 2014

      Muchas gracias Alejandro!! (me hacía falta el boton de ‘me gusta’ en los comentarios)🙂

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

Información

Esta entrada fue publicada el julio 13, 2012 por en Algoritmos Genéticos.
A %d blogueros les gusta esto: