ASP .NET en Windows XP Home
[Desarrollar ASP .NET desde Visual Studio en sistemas con Windows XP Home, que carece de Internet Information Services - IIS ]


Fecha: 25/Oct/2004 (20 de octubre de 2004)
Actualizado: 03/Nov/04
Autor: Miliuco (Emilio Pérez Egido) - emi@quitaesto.miliuco.net - www.miliuco.net

 



1. Desarrollar ASP .NET desde VISUAL STUDIO en WINDOWS XP HOME

Entre las diversas posibilidades que existen para desarrollar ASP .NET, la que lo hace más sencillo es usar el entorno de desarrollo integrado de Microsoft para la plataforma .NET, Visual Studio .NET (excelente ejemplo de entorno RAD - Rapid application development - Desarrollo rápido de aplicaciones). De esta manera, dispones de todas las ventajas de este entorno:

Al trabajar en una aplicación web, los archivos que aparecen en la carpeta de la aplicación difieren, dependiendo de si trabajas desde Visual Studio o fuera de él. Por ello, a la hora de compilar y colocar en el servidor una aplicación ASP .NET, hay que distinguir 2 situaciones diferentes:

Por ello, la directiva @ Page de las páginas aspx es distinta en cada uno de los 2 casos:

Pero Visual Studio .NET solamente permite el desarrollo de aplicaciones web ASP .NET si está instalado IIS - Internet Information Services, al que utiliza para probar la aplicación cuando se pulsa Ejecutar.
Por defecto, Windows XP Home no permite la instalación de componentes de IIS entre los que se cuentan un servidor web, un servidor ftp, etc. Solamente Windows XP Profesional tiene esa capacidad dentro de la familia XP.
Pero, en ocasiones, un poseedor de Windows XP Home quiere desarrollar aplicaciones web ASP .NET. En tales casos, éstas son las opciones:

En realidad, para programar en ASP .NET sólo hace falta un editor de texto y compilar las aplicaciones desde línea de comandos (aquí), recurriendo a cualquier otro servidor web distinto de IIS.
O, de una manera mucho más cómoda que con un editor de texto, pero sin acercarse a la facilidad de programación que nos proporciona Visual Studio .NET, usando ASP.NET WebMatrix de Microsoft, una herramienta de desarrollo de aplicaciones ASP .NET, gratuita, con entorno gráfico WYSIWYG, coloreado y formateado de sintaxis, visión de las páginas aspx como diseño o como HTML y, lo que más tiene que ver con el tema que nos ocupa, su propio servidor web interno para probar las páginas (WebMatrix). El principal inconveniente de WebMatrix respecto a Visual Studio .NET es la ausencia de IntelliSense y de gestión integrada de proyectos completos, además de que su interfaz no está traducida al castellano.


2. Servidores web alternativos: CASSINI PERSONAL WEB SERVER

Como ya se ha comentado, si decides desarrollar ASP .NET desde Windows XP Home sin IIS, puedes usar servidores web distintos de IIS pero Visual Studio .NET solamente reconoce a IIS por lo que no podrás desarrollar ASP .NET desde el IDE de Visual Studio .NET.

Esto va a cambiar en la próxima versión de .NET, de sobrenombre Whidbey, que lleva incorporado un servidor web interno llamado Venus, lo que posibilitará la creación de aplicaciones web desde Visual Studio sin necesidad de tener servidor web instalado en el PC.
Venus
es en realidad una actualización de un servidor web personal existente actualmente como parte integrante del proyecto WebMatrix, llamado Cassini Personal Web Server. No parece aventurado suponer el origen del nombre Venus ya que el nombre de código del proyecto WebMatrix fue Saturn y Giovanni Domenico Cassini (1625-1712) fue un astrónomo, primer director del Real Observatorio Astronómico de París, que descubrió 4 de las lunas (satélites) de Saturno, por lo que Venus no hace sino proseguir en esa línea de nomenclatura.

Dejando a un lado al archiconocido servidor web Apache, muy utilizado en Internet, libre y gratuito, con versiones para multitud de plataformas, perfectamente válido para cualquier tarea relacionada con Internet incluso a nivel profesional, del que existen miles de sitios con documentación, trucos y ayudas, aparte del sitio oficial de la Apache Software Foundation, por lo que no merece la pena nombrar aquí ni sus características ni las modalidades de instalación o configuración, voy a referirme al servidor web personal Cassini.

CASSINI PERSONAL WEB SERVER

ASP.NET Cassini Web Server es un proyecto de servidor web personal, libre y gratuito, que forma parte del proyecto WebMatrix. En realidad, comenzó más como un ejercicio de programación, escrito enteramente en C#, para ilustrar el uso de las clases disponibles en el Microsoft .NET Framework para alojamiento web (System.Web.Hosting). Su uso requiere Windows Server 2003, Windows 2000 o Windows XP así como el Microsoft .NET Framework.

Puede ser descargado, código fuente incluido, desde aquí (220 KB).

Estos son algunos consejos acerca de su instalación y uso (verdaderamente sencillos y, sin embargo, al disponer del código fuente en C# del programa, encierran muchas enseñanzas):


3. ¿Es posible INSTALAR IIS en XP HOME?

La necesidad de instalar y usar IIS surge al comenzar a escribir proyectos web (ASP .NET) desde Visual Studio .NET y encontrar la necesidad de tener IIS instalado en el sistema (no basta con tener "cualquier otro" servidor web, por ejemplo Apache, Cassini..., ha de ser IIS de Microsoft).
Buscando por Internet se encuentra ayuda muy útil sobre este asunto. Aunque "oficialmente" la instalación de IIS en Windows XP Home no está soportada, sí es posible realizarla. El método propuesto en los sitios consultados es básicamente el mismo, y se comenta más abajo.

Como Windows XP Home trata la seguridad de carpetas y archivos de manera diferente a Windows XP Profesional, suelen surgir problemas, una vez instalado IIS, con los permisos requeridos para mostrar la página de inicio o con los permisos de modificación (escritura) de los archivos del sitio web local; también se comenta la forma de solucionar estos inconvenientes.

NOTA LEGAL: las modificaciones propuestas en los apartados siguientes pueden dar lugar a la invalidación del Contrato de Licencia para el Usuario Final (CLUF) de Microsoft Windows XP Home. El CLUF o EULA (End-User License Agreement - Acuerdo de Licencia para el Usuario Final) es el tipo de licencia usada en la mayoría del software comercial, incluidos los sistemas operativos de Microsoft. El EULA o CLUF es el contrato legal entre el fabricante o autor y el usuario final de una aplicación de software. El EULA o CLUF detalla cómo puede y no puede ser usado el software y las restricciones que impone el fabricante o autor del software.
El uso de una parte del sistema operativo Windows 2000 en un sistema con Windows XP Home puede incumplir algunas de esas restricciones, al tratarse de un uso no autorizado expresamente por Microsoft.

NOTA TÉCNICA: no siempre es posible hacer funcionar correctamente IIS en Windows XP Home, y una instalación de IIS que funciona bien en Windows XP Home puede estropearse despues de instalar el Service Pack 2 de Windows XP. Has de tener en cuenta que todo lo que se explica en este tutorial es infinitamente más sencillo y con todas las garantías de buen funcionamiento en Windows 2000 Profesional o en Windows XP Profesional y, por supuesto, en la familia de servidores (Windows 2000 Server o Windows 2003 Server).


4. Instalar IIS de WINDOWS 2000 en WINDOWS XP HOME

  1. Abre con un editor de texto el archivo C:\WINDOWS\INF\SYSOC.INF (haz copia del anterior por si acaso)
  2. Busca en el apartado [COMPONENTS] la línea: iis=iis.dll,OcEntry,iis.inf,hide,7
  3. Cambia el texto a  iis=iis2.dll,OcEntry,iis2.inf,,7
  4. Extrae del CD de Windows 2000 (sirve igual Profesional que Server) los archivos IIS.DL_ y IIS.IN_ (carpeta i386) al nombre IIS2.DLL y IIS2.INF copiándolos a una carpeta del disco duro y ejecutando el comando
       EXPAND IIS.DL_ IIS2.DLL
        EXPAND IIS.IN_ IIS2.INF
  5. Copia IIS2.DLL a C:\WINDOWS\SYSTEM32\SETUP\
  6. Copia IIS2.INF a C:\WINDOWS\INF\
  7. Ve a Agregar y quitar programas / Componentes de windows y elige el componente de IIS (marca sólo la casilla del servidor web y el programa selecciona las otras casillas que necesita automáticamente)
  8. Aquí es donde pide el CD de Windows 2000 mientras copia archivos. Por si acaso pidiese algún archivo suelto del paquete IMS.CAB, que está en la carpeta i386 del CD de Windows XP o en la carpeta i386 del CD de Windows 2000 (por ejemplo, a veces solicita el archivo EXCH_adsiisex.dll de alguno de esos paquetes)  es por lo que lo tengo accesible para descargar (ver más abajo) pero lo más probable es que sólo busque archivos en el CD de Windows 2000.
  9. Al finalizar, si vas a botón derecho sobre Mi PC / Administrar / Servicios y aplicaciones / Servicios de Internet Information Server, aparece una entrada nueva para el IIS, desde ahí detienes o arrancas el servicio y configuras las opciones del servidor (directorio que contendrá el sitio web, cuenta de usuario que realiza el acceso anónimo, permisos a directorios, nombre de la página inicial, etc..
  10. Por defecto, la carpeta raíz del servidor web está en C:\Inetpub\wwwroot, ahí es donde vas creando el sitio web local pero puedes modificar ésto desde la herramienta de administración del servicio

Para probar si todo está bien, dirige tu navegador a la dirección web de la máquina local, puede ser cualquiera de éstas:
http://localhost

http://127.0.0.1
http://nombre_de_máquina

Recuerda que, si usas cortafuegos o estás detrás de un router en modo multipuesto, has de abrir el puerto 80 (servidor web) si deseas que el servicio funcione adecuadamente.


5. Instalar IIS después de instalar VISUAL STUDIO .NET

Si instalas IIS después de haber instalado Visual Studio .NET (cosa bastante habitual en usuarios de Windows XP Home, que suelen probar a desarrollar ASP .NET cuando ya tienen instalado Visual Studio .NET), aparece un error al crear un nuevo proyecto web en Visual Studio .NET del tipo "no existe o no funciona el servicio ASP .NET..." (o algún texto similar). Para solucionarlo, has de ejecutar desde una ventana de comandos:

C:\WINDOWS\Microsoft.NET\Framework\vx.x.xxxx\aspnet_regiis.exe /i

y además

regsvr32 "%windir%\Microsoft.NET\Framework\vx.x.xxxx\aspnet_isapi.dll"

(donde vx.x.xxxx, substituyendo las x por números, equivale a la versión de .NET Framework instalada)

Con esa orden se reinstala y reinicia el servidor ASP .NET (este comando instala la versión de ASP .NET asociada a la herramienta aspnet_regiis.exe y actualiza las asignaciones de secuencias de comandos de todas las aplicaciones ASP .NET existentes. Ten en cuenta que sólo se ven afectadas las aplicaciones que, en la actualidad, tienen una versión anterior de ASP .NET asignada) y debería permitir la creación de proyectos web en Visual Studio .NET. También se realiza el registro correcto del fichero que se encarga de los filtros ISAPI.

Esto sólo es necesario si has instalado IIS cuando ya tienes instalado Visual Studio .NET en tu PC.


6. Problema con los permisos para acceder a http://localhost

  • Usar la cuenta de usuario que inicia la sesión en Windows para el acceso anónimo al servidor web local

Si al intentar abrir el sitio web predeterminado recibes mensajes de error de Acceso no permitido o Permisos insuficentes, puede ser útil cambiar la cuenta del sistema que se usará para el acceso como usuario anónimo; esta cuenta por defecto es IUSR_XXX (donde XXX es el nombre de la máquina local) pero puede ser substituida por el usuario que ha iniciado sesión en Windows con la salvedad de que este usuario ha de tener contraseña (no puede ser cuenta sin contraseña).
Para ello, vas al Administrador del servicio IIS (botón derecho en Mi PC / Administrar / Servicios y aplicaciones / Servicios de Internet Information Server) y allí:


7. Errores de IIS después de instalar SERVICE PACK 2 de WINDOWS XP (SP2)

  • Recuperar los archivos IIS.INF / IIS.DLL desde Windows 2000 SP4
  • Utilizar la herramienta que comprueba los archivos protegidos de sistema (SFC)

Después de aplicar el SP2 a Windows XP Home, algunas instalaciones de IIS en Windows XP Home dejan de funcionar. Una posible solución a este problema es:

  • Desinstalar IIS desde Agregar y quitar componentes de Windows (pueden aparecer mensajes de error durante la desinstalación).
  • Extraer desde un CD de Windows 2000 con el Service Pack 4 ya integrado los 2 archivos nombrados aquí, al comienzo de este tutorial, sobreescribiendo los que ya tienes en tu sistema. Se trata de los archivos IIS.DL_ e IIS.IN_ de la carpeta /i386 del CD de Windows 2000.
  • Volver a instalar IIS desde Agregar y quitar componentes de Windows.
  • Repasar las instrucciones de los puntos 3, 4 y 5 relacionadas con permisos y escritura de carpetas.

También puede ser útil usar la herramienta SFC (System File Checker - Comprobador de archivos de sistema) que busca archivos de sistema protegidos y reemplaza las versiones incorrectas por las correctas, extrayéndolas del CD de Windows XP Home si es necesario:


ir al índice