Instalación y configuración de un sitio web para .NET 2.0

Artículo dónde se describe aspectos a tener en cuenta a la hora de instalar y configurar un sitio web con aplicaciones .NET 2.0

La situación se plantea para las siguientes condiciones:

  • Windows 2003 Server
  • IIS 6.0
  • Sitio web .NET 2.0

NOTA: Estas recomendaciones son solo aspectos a tener en cuenta. Puede investigar más detenidamente en MSDN mirando documentación relacionada con el tema (ver biblografía)

Recomendaciones iniciales

Una de las causas más comunes de error es realizar la instalación de los componentes (IIS, frameworks .NET, etc.) en el orden incorrecto: en este caso el orden SI altera el producto. Primero se debe de tener correctamente instalado IIS y después los frameworks .NET 1.1, 2.0, etc. En caso de que lo hubiéremos hecho al revés (.NET -> IIS) tendremos que reparar / reinstalar los frameworks .NET.

Requisitos previos

Necesitamos tener instalado el IIS 6.0 y hasta el último framework .NET (1.1, 2.0, 3.0, etc.).

Respecto al IIS, si no lo tenemos habremos de instalarlo en Panel de Control, Agregar o quitar programas, Agregar o quitar componentes de Windows, dónde habremos de marcar las siguientes opciones dentro de Servidor de aplicaciones:

  • ASP.NET
  • Consola de servidor de aplicaciones
  • Habilitar el acceso de red COM+
    • Instalar Internet Information Services (IIS)
    • Administrador de servicios de Internet Information Services
    • Archivos comunes
    • Servicio de Protocolo de transferencia de archivos (FTP)
    • Servicio World Wide Web

Respecto al .NET, habremos de instalar los frameworks 1.1, 2.0, 3.0, 3.5. Creo que el último ya incluye los anteriores, por lo que puedes probar a instalar primero éste).

Directorios y permisos

  • Si coloca el sitio fuera del directorio por defecto (C:\Inetpub\wwwroot) tendrá que darle al directorio del sitio (o mejor, a la carpeta que vaya a contener todos los sitios o proyectos) los mismos permisos que tenga C:\Inetpub\wwwroot.
  • Hay que tener en cuenta que el directorio del sitio tiene que tener los mismos permisos que C:\Inetpub\wwwroot, por lo que se puede dar la situación que al mover el directorio del sitio desde otro lugar dichos permisos no se hereden automáticamente. En ese caso habría que desmarcar y marcar la opción de heredar permisos y comprobar que se actualicen.

Básicamente los permisos requeridos para los directorios que vayan a contener sitios web son los siguientes:

Cuenta o grupo Permisos
Grupo EQUIPO\Administradores Control total
Usuario EQUIPO\IUSR_EQUIPOCuenta para el acceso anónimo a los sitios web Mostrar el contenido de la carpeta
Grupo EQUIPO\IIS_WPGCuentas de usuario de identidad para procesos asociados con los grupos de aplicaciones Lectura y ejecución
Mostrar el contenido de la carpeta
Leer
Grupo EQUIPO\RED Mostrar el contenido de la carpeta
Grupo EQUIPO\Servicio de red (IIS 6.0) Leer y Ejecutar
Mostrar contenido de carpeta
Lectura
Escritura
Grupo EQUIPO\SYSTEM Control total
Grupo EQUIPO\Usuarios del dominio Control total

IIS 6

Las aplicaciones que se crean dentro de un Sitio Web, heredan la configuración de éste. Así que si solo fuera a contener aplicaciones .NET de un tipo más o menos homogéneo podemos ajustarle la configuración de forma que luego casi no tengamos que tocar la configuración de cada aplicación. Estas son algunas tareas que podemos hacer.

  • Comprobar en el servidor MAQUINA (Equipo local) que están instaladas las siguientes Extensiones de servicio Web. Si no lo estuvieran hay que añadirlas haciendo lo siguiente:
    • Añadir la extensión de servicio web ASP.NET v1.1.4322 apuntando al archivo C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\aspnet_isapi.dll
    • Añadir la extensión de servicio web ASP.NET v2.0.050727 apuntando al archivo C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll
    • Comprobar que su estado sea Permitir
  • En Sitio Web predeterminado, Propiedades, en el apartado Directorio particular, dejar la configuración por defecto:
    • Ruta de acceso local: c:\inetpub\wwwroot
    • Nombre de la aplicación: Aplicación predeterminada
    • Permisos de ejecución: Sólo secuencias de comandos
    • Grupo de aplicaciones: Default pool
    • etc.
  • En la pestaña Directorio particular, botón Configuración, pestaña Asignaciones revisar que estén declaradas todas las extensiones de los tipos de archivos que estarán en ejecución en las aplicaciones (.aspx, .asmx, .asdx, .axd, etc.) asignandoles la ruta correcta de la librería que debe hacer el procesamiento (para .NET 2.0 sería C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll). En Verbos, dejar Todos o poner GET,HEAD,POST,DEBUG (DEBUG es para poder depurar con Visual Studio).
  • En las pestañas Sitio web, Rendimiento y Filtros ISAPI dejar las configuraciones por defecto.
  • En la pestaña Documentos, incluir todos los archivos de inicio que pensemos que serán más comunes (pe. inicio.aspx, default.aspx, etc.) y quitar los que no se van a utilizar.
  • En la pestaña Seguridad de directorios, Autenticación y control de acceso, Modificar, marcar las opciones Habilitar acceso anónimo y Autenticación de Windows integrada
  • Finalmente, si todas las aplicaciones serán .NET 2.0, ir a la pestaña ASP.NET y verificar que está seleccionada la versión 2.0

En cuanto a las aplicaciones en particular, habrá que ajustar

  • Si puso la apliación en C:\Inetpub\wwwroot puede saltar el siguiente paso.
  • Si puso la apliación fuera de C:\Inetpub\wwwroot tendrá que crear en IIS el directorio virtual correspondiente que apunte a su aplicación.
  • En miAplicacion, Propiedades, Directorio virtual, darle a Crear aplicación
  • En la pestaña Directorio virtual, revisar que esté seleccionado Sólo secuencias de comandos (sino la página daría un Error HTTP 403.1 - Prohibido: permiso de ejecución denegado.)
  • En la pestaña Directorio virtual, botón Configuración, pestaña Asignaciones revisar que estén declaradas todas las extensiones de los tipos de archivos que van a estar en ejecución (.aspx, .asmx, .asdx, .axd, etc.) siguiendo la misma mecánica que para el Sitio Web.
  • En la pestaña Documentos, dejar sólo las páginas de inicio que se vayan a utilizar (default.aspx, inicio.aspx, etc.)

Visual Studio 2005

  • En nuestra Solución actual (crear una nueva si no existía) Agregar proyecto Web existente, HTTP, y poner la URL al proyecto que hemos creado previsamente en IIS (algo así como http://localhost/miAplicacion)
  • En Propiedades, Opciones de Inicio, Página específica, fijar la página de inicio
  • Si el sitio utiliza AJAX.NET 1.0 habrá que instalar instalar las extensiones ASP.NET 2.0 AJAX Extensions 1.0 (descargar de la web e instalar) y añadir o revisar la referencia a la dll correspondiente

SQL Server 2005

  • Instalar aspnetdb. Cuidado porque si el proyecto utiliza la autentificación integrada que proporciona .NET 2.0 hay que crear en el sistema local la base de datos de autenticación aspnetdb. Esto se hace desde una consola del sistema y ejecutando el siguiente comando: %Windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_regsql -S SERVIDOR -U USUARIO -P PASSWORD -A mp (si se ejecuta en localhost sería ...\aspnet_regsql -S localhost -E -A mp)
  • Si fuera necesario, rellenar con datos de una base aspnetdb de ejemplo.

SQL Server Reporting Services

  • Si el sitio web utiliza informes de Reporting Services, será necesario darle al grupo Servicios de red permisos de escritura (modificación) sobre el directorio Temporary ASP.NET Files (para .NET 2.0 estará en C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\). De no hacerlo puede salir el siguiente mensaje de error:
    La identidad actual (NT AUTHORITY\Servicio de red) no tiene acceso de escritura para 'C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files'

Errores comunes

  • En el navegador al entrar en el sitio: No se pudo tener acceso a la metabase de IIS ...: Esto ocurre generalmente por instalar IIS después del .NET. Para solucionarlo o bien tiene que reparar el .NET Framework desde Agregar o quitar programas o también puede ir a C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727 y ejecutar el comando aspnet_regiis -i. En definitiva tiene que estar presente la extensión de servicio web correspondiente al framework (ASP.NET v1.1.4322 o v2.0.50727)
  • En el VS al depurar el sitio: No se puede iniciar la depuración en el servidor Web. El servidor Web no está configurado correctamente.... Esto puede ocurrir, o bien porque el sitio no esté configurado en el IIS como una aplicación, o porque no esté asociado el verbo DEBUG a la extensión .aspx
  • Relacionado con el procesamiento de la extensión .axd en miAplicacion, Propiedades, Directorio virtual, Configuración, Asignaciones, AJAX para .NET parece que al ejecutar la aplicación en un navegador (contra servidor, no contra localhost) pueden aparecer varios errores Javascript encadenados relacionados con Sys siendo uno de ellos Sys no está definido. Si esto ocurre revisar la configuración de dicha extensión. Parece que también son importantes los httpHandlers que hay que añadir en el web.config (aunque habría que profundizar en este tema para ver su influencia)

Bibliografía y enlaces interesantes

Guarda   |   Imprime   |   Recomienda
  • email
  • Print
  • PDF
  • RSS
  • Google Bookmarks
  • Technorati
  • Meneame
  • Digg
  • TwitThis
  • MySpace
  • Yahoo! Bookmarks
  • del.icio.us
  • Facebook
  • Bitacoras.com
  • Live
  • StumbleUpon
  • Wikio
  • Netvibes
  • BarraPunto

Otros artículos de esta serie:

Publicar un Comentario

Si es la primera vez que escribes, tu comentario será moderado por un administrador.

Con el fin de garantizar un ambiente de debate respetuoso, no se permitirán comentarios:

  • insultantes, difamatorios, racistas, sexistas, y/o discriminatorios
  • excesivamente críticos con otros participanes
  • que no aporten nada, sin sentido o repetidos
  • con enlaces considerados publicidad o spam
  • con material protegido por derechos de autor
*
*