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) - [email protected] - 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