ASP .NET
en Windows XP Home
|
- Desarrollar ASP .NET desde VISUAL STUDIO en WINDOWS XP HOME
- Servidores web alternativos: CASSINI PERSONAL WEB SERVER
- �Es posible INSTALAR IIS en XP HOME?
- Instalar IIS de WINDOWS 2000 en WINDOWS XP HOME
- Instalar IIS despu�s de instalar VISUAL STUDIO .NET
- Problema con los permisos para acceder a http://localhost
- Errores de IIS despu�s de instalar SERVICE PACK 2 de WINDOWS XP (SP2)
1. Desarrollar ASP .NET desde VISUAL STUDIO en WINDOWS XP HOMEEntre 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:
- dise�adores integrados para cada uno de los lenguajes soportados.
- vistas complementarias de dise�o y de c�digo (creaci�n de c�digo desde la vista dise�o).
- editores con sintaxis en colores y formato del c�digo para aumentar su legibilidad.
- barras de herramientas y controles muy completas.
- autocompletado del c�digo desactivando opciones inadecuadas (IntelliSense) y revisi�n de errores.
- motor de depuraci�n y de ejecuci�n con numerosas opciones.
- ampl�sima ayuda sobre el propio entorno, lenguajes de programaci�n, clases de .NET Framework...
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:
- Si trabajas dentro del entorno de desarrollo integrado de Visual Studio .NET, se generan una serie de archivos de los que, sobre todo, nos interesan:
- la p�gina aspx de la carpeta ra�z de la aplicaci�n, es el archivo hacia el que apuntar el navegador web, puede ser colocado en cualquier carpeta del servido web.
- el archivo vb con c�digo Visual Basic .NET, tiene el mismo nombre que el archivo aspx, a�adiendo la extensi�n vb. Este archivo es necesario para modificar la aplicaci�n pero puede no estar presente en el servidor web.
- la librer�a dll de la carpeta bin de la aplicaci�n, es el archivo de c�digo Visual Basic .NET compilado, debe ser colocado obligatoriamente en una carpeta bin que cuelgue directamente de la carpeta ra�z del servidor web. La existencia de esta librer�a es la que hace innecesaria la presencia del archivo vb en el servidor, ya que la p�gina aspx busca las variables, m�todos, propiedades... en esta librer�a.
- Si trabajas con un editor de texto: s�lo hay que generar 2 archivos, aspx y vb, que pueden ser colocados en cualquier lugar del servidor web. No es obligatorio compilar el archivo vb. El navegador web apunta a la p�gina aspx y en ella aparece una referencia a la localizaci�n del archivo vb.
Por ello, la directiva @ Page de las p�ginas aspx es distinta en cada uno de los 2 casos:
- Si trabajas en el entorno RAD de Visual Studio .NET, se usan estos atributos en la directiva @ Page:
- Codebehind, que especifica el nombre del archivo compilado que contiene la clase asociada con la p�gina. El dise�ador de formularios Web Forms de Visual Studio .NET usa este atributo para averiguar d�nde se encuentra la clase derivada de Page, de forma que pueda crear una instancia de la misma para que se pueda trabajar con ella en tiempo de dise�o. Codebehind s�lo se usa en tiempo de dise�o, no se usa en tiempo de ejecuci�n, ya se ha visto que el archivo vb como tal no es necesario, s�lo la librer�a dll resultante de la compilaci�n.
- Inherits, que define la clase de la que hereda la p�gina aspx. Esta clase ser� buscada en la librer�a correspondiente de la carpeta bin de la ra�z del servidor Web, seg�n el esquema nombre_de_la_dll.nombre_de_la_clase).
As� es como debe ser configurado mientras se trabaja con la p�gina dentro de Visual Studio .NET (igualmente se puede mantener esta directiva en el servidor web, a condici�n de tener la librer�a dll en la carpeta bin de la ra�z del servidor; es indiferente conservar o borrar el atributo Codebehind, ya se ha dicho que no se usa en tiempo de ejecuci�n):
<%@ Page Language="vb" Codebehind="clases.aspx.vb" Inherits="ejercicio.clase1" %>
(aqu� la p�gina aspx utiliza el atributo Inherits para heredar la clase clase1 derivada de Page, descrita en el archivo clases.aspx.vb, que es precompilado en segundo plano para poder probar la p�gina a medida que se va construyendo).
- Si trabajas fuera del entorno RAD de Visual Studio .NET, se usan estos atributos en la directiva @ Page:
- Inherits, que define la clase que hereda la p�gina aspx (puede ser cualquier clase derivada de la clase Page).
- Src, que especifica el archivo de c�digo fuente vb en el que se define la clase heredada (es compilado din�micamente cuando se solicita la p�gina aspx); este archivo puede estar situado en cualquier carpeta del servidor, s�lo hay que especificarlo correctamente en la ruta del atributo Src.
As� es como debe ser configurado al colocar las p�ginas en el servidor web:
<%@ Page Language="vb" Inherits="clase1" Src="clases.aspx.vb" %>
(aqu� la p�gina aspx hereda la clase clase1, descrita en el archivo clases.aspx.vb , que es compilado en tiempo de ejecuci�n)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:
- adquirir Windows XP Profesional para substituir a Windows XP Home: soluci�n cara, sobre todo si se trata de un programador aficionado que est� aprendiendo sin finalidad comercial (Windows XP Profesional cuesta el doble que Windows XP Home).
- desarrollar ASP .NET sin usar Visual Studio .NET: perfectamente v�lido, pero se pierden las enormes ventajas que, para el programador novato, tiene este entorno.
- instalar IIS de Windows 2000 Profesional en Windows XP Home para poder usar Visual Studio .NET.
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):CassiniWebServer <ruta_f�sica> <puerto> <ruta_virtual>. Por ejemplo, si tienes las carpetas del sitio web local en C:\Misitio, puedes arrancar el servidor web con esta orden: CassiniWebServer "C:\Misitio" 80 /, lo que dice a Cassini que las aplicaciones web est�n en C:\Misitio, que utilice el puerto 80 habitual de servidor web y que muestre la ruta virtual / que es la ra�z del sitio web local. Es f�cil crear un acceso directo al ejecutable CassiniWebServer.exe con la orden comentada en las propiedades (destino) del acceso directo.
- la descarga de ASP.NET Cassini Web Server consta de varios archivos:
- archivos que forman el ensamblado Cassini.dll que implementa la funcionalidad de servidor web:
- AssemblyInfo.cs
- ByteParser.cs
- ByteString.cs
- Connection.cs
- Host.cs
- Messages.cs
- Request.cs
- Server.cs
- archivo de c�digo fuente para la aplicaci�n, con la interfaz y los m�todos del servidor web:
- CassiniWebServerMain.cs
- CassiniWebServer.ico
- archivo por lotes para compilar el ensamblado Cassini.dll y la aplicaci�n CassiniWebServer.exe (el archivo build.bat simplemente compila el ensamblado Cassini.dll, lo a�ade a la Global Assembly Cache y compila el ejecutable CassiniWebServer.exe para poder usarlo directamente):
- build.bat
- se ejecuta mediante este formato:
para complementar este breve repaso a Cassini, aqu� tienes una imagen del programa en funcionamiento:
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
- Abre con un editor de texto el archivo C:\WINDOWS\INF\SYSOC.INF (haz copia del anterior por si acaso)
- Busca en el apartado [COMPONENTS] la l�nea: iis=iis.dll,OcEntry,iis.inf,hide,7
- Cambia el texto a iis=iis2.dll,OcEntry,iis2.inf,,7
- 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- Copia IIS2.DLL a C:\WINDOWS\SYSTEM32\SETUP\
- Copia IIS2.INF a C:\WINDOWS\INF\
- 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)
- 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.
- 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..
- 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�:
- Bot�n derecho en Sitio Web Predeterminado / Propiedades / Seguridad de Directorios / Control de autentificaci�n y Acceso an�nimo / Modificar
- M�todos de autentificaci�n / Acceso an�nimo / Modificar
- Cuenta de usuario an�nimo: si no est�s seguro de c�mo escribir tu nombre de usuario, das al bot�n Examinar y despu�s a Avanzadas / Buscar ahora, donde aparecen los usuarios del sistema.
- Das doble clic al usuario que inicia sesi�n en Windows y te vas saliendo de los cuadros de di�logo, en uno de ellos te hace confirmar la contrase�a y en otro te puede mostrar nodos de IIS (carpetas, impresoras...) a los que aplicar la configuraci�n de seguridad reci�n cambiada, los seleccionas a todos y tambi�n aceptas (recuerda dejar seleccionada la casilla de Autentificaci�n de Windows integrada pues, de no ser as�, http://localhost no ser� accesible o no ser� posible crear nuevos proyectos web desde Visual Studio)
- Detener y reiniciar el servicio de IIS.
- AVISO DE SEGURIDAD: La configuraci�n propuesta solamente debe emplearse en el servidor web local para probar las p�ginas en nuestro propio PC, nunca en servidores web abiertos a Internet, por el peligro que entra�a permitir a usuarios externos acceder como an�nimos empleando nuestra propia cuenta del sistema que, por lo general, es del grupo Administradores. Por otro lado, un servidor web accesible desde Internet no deber�a nunca tener instalado Windows XP Home.
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:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Setup]
- Es necesario disponer del CD de Windows XP Home SP2
- Abrir una ventana de comandos (Inicio / Ejecutar / Cmd)
- teclear sfc /purgecache + intro (vac�a la cach� de archivos de sistema protegidos)
- teclear sfc /scannow + intro (busca archivos de sistema protegidos comprobando si la vesi�n es correcta y reemplazando las versiones incorrectas por las correctas)
- si SFC solicita el CD de Windows XP Home a pesar de tenerlo ya introducido en su alojamiento, puede ser debido a que la ruta a la unidad del CD almacenada en el registro no sea la correcta o a que no est� bien definido el directorio en que SFC guarda la copia en cach� de los archivos protegidos. La soluci�n a estos problemas es:
- editar la clave del registro
y modificar (o crear si no existe) un valor alfanum�rico (REG_SZ) de nombre SourcePath, asign�ndole la ruta correcta (ejemplo: "E:\")editar la clave del registro En ambos casos hay que reiniciar Windows para que los cambios surtan efecto.
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
y modificar (o crear si no existe) un valor de cadena expandida (REG_EXPAND_SZ) de nombre SFCDllCacheDir, asign�ndole el nombre Qualified Directory