none
Instalar en IIS mi aplicación web RRS feed

  • Pregunta

  • Hola a todos, estoy en duda acerca de como instalar mi aplicación web en un servidor, teniendo la siguiente arquitectura: una pc que actua de servidor remoto, y que es donde tengo instalada mi base de datos sql server 2005. Otra pc que es donde deberia instalar mi aplicación web, supongo que con iis :S pero no tengo mucha idea, y luego pc's que usan una aplicación windows que se comunica con el servidor remoto y de base de datos.

    Puedo instalar en iis la aplicación web y que esta acceda al servidor de base de datos sin problema?
    Agradezco las respuestas!!
    Un saludo,
    Sebastián

    viernes, 20 de marzo de 2009 3:54

Respuestas

  • 1. Las extensiones de servidor FrontPage, las puedes marcar pero dentro de los Details de IIS (haz click en el botón Details, y veras las extensiones de servidor FrontPage).

    2. Desde IIS si puedes ver el contenido de tu sitio web no?, desde IIS haz click sobre una pagina *.html, y pones explorar para ver si las html estan bien.

    3. Para ejecutar el comando aspnet_regiis, tienes que estar en c:\Windows\Microsoft.Net\NetFramework\2.XYZ\, cuando en el command navegas hacia esa carpeta podrias usar el aspnet_regiis, en el maestro google hay muchos ejemplos.

    Saludos,
    Sergio Tarrillo - http://sergiot2.com/blog/
    Si la respuesta ha sido de utilidad marca la como respuesta correcta.
    • Propuesto como respuesta sergio.tarrillo jueves, 26 de marzo de 2009 13:31
    • Marcado como respuesta Sebastian2009 jueves, 26 de marzo de 2009 17:52
    miércoles, 25 de marzo de 2009 20:45
  • Dentro de tu IIS, cual es el proyecto que tu has desarrollado? "Aplicación Web" o "EPSONSty"?

    1. Nunca tildes los nombres de archivos y carpetas.
    2. Si uno de esos dos es tu aplicación que has desarrollado (tiene que ser :D), dale clic derecho en las propiedades de carpeta, y debes hacer que la carpeta sea una aplicación, osae pulsas el botón CREATE, y en execute permissions seleccionas Script Only, como esta imagen:

    http://ehampshire.com/computer/Technical%20Reference%20NT%20IIS%205_0%20and%20Win2K%20Hardening%20Configuration_files/iis5_w2k_13.gif.

    Lo que pasa es que ahorita, si bien tus carpetas están en el IIS, no son directorios virtuales, por ende son aplicaciones Web. Y como esa carpeta no es una aplicación Web, no puede tener un archivo de configuración (web.config).

    Saludos,


    Sergio Tarrillo - http://sergiot2.com/blog/
    Si la respuesta ha sido de utilidad marca la como respuesta correcta.
    • Propuesto como respuesta sergio.tarrillo jueves, 26 de marzo de 2009 5:50
    • Marcado como respuesta Sebastian2009 jueves, 26 de marzo de 2009 17:52
    jueves, 26 de marzo de 2009 5:50

Todas las respuestas

  • Si,

    En una maquina puedes tener SQL server ( Servidor A)
    y en otro servidor puedes tener tu pagina Web, con el IIS instalado y el framework correspondiente ( Servidor B)


    - Tienes que tomar en cuenta que el servidor B tenga acceso al servidor A.

    - En algunas ocaciones tienes que crear una excecpcion en el Firewall ( http://msdn.microsoft.com/es-es/library/ms175043(SQL.90).aspx)
    ya que aunque las maquinas puedan hacer ping , no te vas a poder conectar por el Firewall.


    Saludos
    • Propuesto como respuesta Jose Elias viernes, 20 de marzo de 2009 4:23
    viernes, 20 de marzo de 2009 4:23
  • El proceso que debes seguir es el siguiente:

    En el Servidor de SQL Server:

    1. SQL Server 2005, funcionando correctamente con las últimas actualizaciones
    2. Habilitar las conexiones remotas con SQL Server 2005.
    3. Si vas a usar autenticación Windows, dar permisos al usuario NETWORK Service a la base de datos (*u)
    4. Habilitar el Windows Firewall para SQL Server.

    En el Servidor Web:

    1. Imagino que tu servidor es Windows Server 2003, y debe contener las últimas actualizaciones.
    2. Tener instalado el IIS 6.0 (vas a necesitar el instalador para habilitarlo). Si vas a usar el mail, instalar el SMTP.
    3. Instalar el framework requerido por la aplicación, que imagino puede ser .Net 2.0 o .Net 3.5.
    4. Crear un Application Pool (IIS6 +), para que sólo trabaje que con tu aplicación. Más sobre ApplicationPools, por defecto este applicationPool usa el usuario NETWORKSERVICE (*u), si le cambias el usuario debes darle permisos para tu base datos a ese usuario. Este usuario será el usuario del proceso de asp.net.
    5. Crear un directorio virtual o usar la misma aplicación, para tu aplicación Web.
    6. Dar los permisos necesario a las carpetas, en el caso que tuvieras uploads de archivos al server.

    En el cliente:

    1. Una maquina sin virus.
    2. Un navegador decente (IIS7, Firefox 3, Safari, Opera).
    3. La ip del servidor Web.

    En si el cliente, no necesita instalar nada de nada. Hay más detalles, pero creo que esto es todo.

    P.D.: Si el mensaje te fue útil, marcalo como respuesta correcta.

    Saludos,


    Sergio Tarrillo - http://sergiot2.com/blog/
    Si la respuesta ha sido de utilidad marca la como respuesta correcta.
    • Propuesto como respuesta sergio.tarrillo viernes, 20 de marzo de 2009 14:35
    viernes, 20 de marzo de 2009 14:34
  • Hola, primero que nada gracias por responder

    Estoy bastante desesperado, tengo muchas preguntas y pocos días :'(
    Mi mayor problema, es que no son mis máquinas en las que voy a instalar, sino que voy a ir a un lugar donde están las máquinas (windows xp) a instalar y todo debe funcionar para que pueda presentar mi proyecto.

    Tomando en cuenta el proceso que me escribiste:
    En el servidor de SQL Server:
     - el punto 3, supuestamente el usuario NETWORK lo debo tener? qué significa (*u)? :(
     - el punto 4, en el Firewall de Windows habilité el puerto 1433 TCP y 1434 UDP (me guié con el link http://technet.microsoft.com/es-es/library/ms175043(SQL.90).aspx), en una parte del artículo dice "Como alternativa a la configuración de SQL Server para escuchar en un puerto fijo y abrir el puerto, puede poner el ejecutable de SQL Server (Sqlservr.exe) en la lista de excepciones a los programas bloqueados. Use este método cuando desee seguir utilizando puertos dinámicos.", mi pregunta es, cómo se si uso puertos dinámicos o estáticos? no se en mi caso si está bien que abriera los puertos como lo hice, o si simplemente debería agregar el archivo ejecutable del SQL Server?

    Por otra parte, en el Visual Studio di Publicar Solución, y a la carpeta precompilada la puse en Inetpub/wwwroot, copié el default.aspx a wwwroot pero cuando pongo localhost en mi navegador me sigue apareciendo la página de bienvenida de iis, y no la default :(

    Muchas gracias por su ayuda :(
    viernes, 20 de marzo de 2009 21:00
  • Hola que tal.

     

    - En cuento a la duda del punto 4: Si hiciste lo correcto (Habilitar el puerto 1433 TCP y 1434 UDP)

     

    - En cuanto a la duda default.aspx:

     Probaste poner la siguiente dirección en el explorador de internet "localhost/default.aspx"

     Si el resultado de probar eso es satisfactorio, significa que te falta decirle al IIS, cual

     es la página que quieres por defecto. (http://www.desarrolloweb.com/articulos/1020.php)

    domingo, 22 de marzo de 2009 20:02
  • Hola Jose, gracias por responder.

    Cuando pongo en el explorador localhost/default.aspx me aparece el siguiente error:

    No se puede mostrar la página XML

    No se puede ver la entrada XML con la hoja de estilo XSL. Corrija el error y haga clic en el botón Actualizar, o inténtelo de nuevo más tarde.


    Un nombre comenzaba con un carácter no válido. Error al procesar el recurso http://localhost/default.aspx. Línea 1, Posici...

    <%@ page language="C#" autoeventwireup="true" inherits="_Default, App_Web_osnq3jl2" %> -^










    Saludos,
    Sebastián

    lunes, 23 de marzo de 2009 0:06
  •  Haz verificado que la versión de la aplicacion sea ASP.NET 2.0 (en el IIS, propiedades de sitio Web, ASP.NET Version).

    En la misma aplicacion, agrega una pagina de html con un hola mundo nada mas, para identificar si el problema es del sitio Web, o solo de las aspx.

    Saludos,
    Sergio Tarrillo - http://sergiot2.com/blog/
    Si la respuesta ha sido de utilidad marca la como respuesta correcta.
    lunes, 23 de marzo de 2009 13:48
  • Hola Sergio, cuando fui a las propiedades la version no estaba establecida asi que la puse, y ahora en vez del error anterior me sale:

    Aplicación de servidor no disponible

    La aplicació&n Web a la que está intentando obtener acceso en este servidor Web no está disponible actualmente.nbsp; Presione el botón "Actualizar" del explorador Web para reintentar la solicitud.

    Nota del administrador: En el registro de eventos de la aplicación del servidor Web puede encontrar el mensaje de error que detalla la causa del error de esta solicitud específica. Revise esta entrada de registro para consultar la causa del error.

    La consola del servidor remoto estaba ejecutada =(

    lunes, 23 de marzo de 2009 21:29
  • Hola, Prueba con lo siguente ( Aplica para IIS 6.0)


    En el administrador del IIS, abajo de la carpeta de Web Sites hay otra carpeta que se llama Web Service Extensions,
    entra a esta y revisa que ASP.NET v2.0.50727 tenga el estado de Permitido, o ASP.NET V1.... ( no se con que Framework estas trabajando) y prueba de nuevo.

    Nos dejas saber para ver si buscamos otra solución.

    Tambien vi que hay otro foro con el mismo tema.

    Hechale una hojeada

    http://social.msdn.microsoft.com/forums/es-ES/dotnetes/thread/b919ff47-d485-4b50-9d9a-6e6f7e468f4c/
    lunes, 23 de marzo de 2009 22:23
  •  Ese mensaje de error, tiene que ver con los Applications Pools, revisa este artículo y me avisas si te ayudo en algo: Los Application Pools, y que tienen que ver con los Web Sites de ASP.NET.

    Pero basicamente es tema de permisos (el usuario del AppPool) o configuración (un AppPool no puede tener dos appWeb de distinta versión del .Net Framework). Revisa el artículo de arriba ahí se detalle un poco más.

    Saludos,
    Sergio Tarrillo - http://sergiot2.com/blog/
    Si la respuesta ha sido de utilidad marca la como respuesta correcta.
    martes, 24 de marzo de 2009 4:06
  • Hola José y Sergio:

    Pues creo que algo esta raro en mi iis, no encuentro donde está la carpeta Web Service Extensions ya que debajo de Web Sites solo tengo "Servidor virtual SMTP predeterminado".

    En tu artículo Sergio mencionas que luego de entrar al administrador de IIS veremos algunos de los Application Pools conocidos y en tu imagen tienes algunos, yo no tengo =(

    Quise acceder a los artículos que linkeas al principio pero me da que no existen.
    Saludos,
    Sebastián

    miércoles, 25 de marzo de 2009 3:52
  • Tu Servidor Web es XP?

    Puedes enviar un pantallazo de tu IIS?.

    En cuanto al artículo, es un pena que ya no se encuentre disponible online, buscare a ver si lo encuentro.

    Saludos,
    Sergio Tarrillo - http://sergiot2.com/blog/
    Si la respuesta ha sido de utilidad marca la como respuesta correcta.
    miércoles, 25 de marzo de 2009 14:35
  • Mi servidor es XP.
    Te mando aqui la pantalla, saludos!

    Mi IIS
    miércoles, 25 de marzo de 2009 17:55
  • Pues y eso, en Windows XP no existen Application Pools.

    Has isntalado las extensiones de servidor front page? (aregar o quitar componetes de XP). Cuando haces una explorar de una pagina html, si funciona? solo hay problemas para cargar aspx?

    En cmd, ejecuta el comando aspnet_regiis -i. Para que instale el soporte de aspnet en IIS. El comando aspnet_regiis esta a nivel del .Net Framework.

    Saludos,
    Sergio Tarrillo - http://sergiot2.com/blog/
    Si la respuesta ha sido de utilidad marca la como respuesta correcta.
    miércoles, 25 de marzo de 2009 19:30
  • Ahh con razon no aparecian, me fui a agregar o quitar componentes de xp y no tengo la opcion de instalar extensiones de servidor front page =(
    Cuando hago explorar de una pagina html en donde? no entendi la pregunta.
    Luego en cmd ejecuté el comando que me diste  y me sale: "aspnet_regiis" no se reconoce como un comando interno o externo, programa o archivo por lotes ejecutable.
    Que lio todo esto, parece que mi pc complota contra mi =P
    miércoles, 25 de marzo de 2009 19:55
  • 1. Las extensiones de servidor FrontPage, las puedes marcar pero dentro de los Details de IIS (haz click en el botón Details, y veras las extensiones de servidor FrontPage).

    2. Desde IIS si puedes ver el contenido de tu sitio web no?, desde IIS haz click sobre una pagina *.html, y pones explorar para ver si las html estan bien.

    3. Para ejecutar el comando aspnet_regiis, tienes que estar en c:\Windows\Microsoft.Net\NetFramework\2.XYZ\, cuando en el command navegas hacia esa carpeta podrias usar el aspnet_regiis, en el maestro google hay muchos ejemplos.

    Saludos,
    Sergio Tarrillo - http://sergiot2.com/blog/
    Si la respuesta ha sido de utilidad marca la como respuesta correcta.
    • Propuesto como respuesta sergio.tarrillo jueves, 26 de marzo de 2009 13:31
    • Marcado como respuesta Sebastian2009 jueves, 26 de marzo de 2009 17:52
    miércoles, 25 de marzo de 2009 20:45
  •  Pude instalar las extensiones de FrontPage, pero todo sigue igual =(

     Desde el IIS no puedo acceder a mi sitio web, solo tengo los .aspx, y no me da la opción explorar, pero si los quiero abrir de ahí mismo los aspx (con examinar) me da el mismo error "Aplicación de servidor no disponible".

     Ejecuté el comando desde donde me dijiste, me dice la consola: "Inicie la instalación de ASP.NET."

    EDITO:
    luego de un buen rato, salió en la consola que se había instalado correctamente.
    Ahora, yo en wwwroot puse la carpeta llamada Web, que adentro de ésta está Default.aspx.
    Entonces en mi navegador pongo localhost/Web/Default.aspx y me sale:

     

    Error de servidor en la aplicación '/'.

    Error de configuración

    Descripción: Error durante el procesamiento de un archivo de configuración requerido para dar servicio a esta solicitud. Revise los detalles de error específicos siguientes y modifique el archivo de configuración en consecuencia.

    Mensaje de error del analizador: Es incorrecto utilizar una sección registrada como allowDefinition='MachineToApplication' mas allá del nivel de aplicación. Este error puede tener como origen un directorio virtual que no esté configurado como aplicación en IIS.

    Error de código fuente:

    Línea 30: ASP.NET para identificar a un usuario entrante. Línea 31: --> Línea 32: <authentication mode="Windows"/> Línea 33: <!-- Línea 34: La sección <customErrors> permite configurar 

    Archivo de origen: c:\inetpub\wwwroot\web\web.config    Línea: 32


    Ah!!! y ahora me aparecen los html de ayuda y los gif y todo eso y puedo ver todo, excepto el Default.aspx, donde me aparece el error que copié antes =) por lo menos algo voy adelantando creo!
    miércoles, 25 de marzo de 2009 22:02
  • Vamos bien :D.

    Tu web la haz desarrollado con VS2005 no?, si es así verifica que la versión del sitio Web (en el IIS) sea ASP.NET 2.0.

    Si lo anterior esta bien, copia el contenido de tu archivo web.config.

    Saludos,
    Sergio Tarrillo - http://sergiot2.com/blog/
    Si la respuesta ha sido de utilidad marca la como respuesta correcta.
    jueves, 26 de marzo de 2009 0:49
  • Hola Sergio! sí, la desarrollé en VS 2005, y la versión en IIS está bien también.

    Te paso aquí el código del web config:

    <?xml version="1.0"?>  
     
    <configuration> 
        <appSettings> 
        <add key="RutaEsquemaXml" value="C:\"/>  
        <add key="Alta.Alta" value="http://localhost:3111/Servicios Web/Alta.asmx"/>  
        </appSettings> 
        <connectionStrings/> 
        <system.web> 
            <compilation debug="true">  
                <assemblies> 
                    <add assembly="System.Runtime.Remoting, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>  
                    <add assembly="System.Messaging, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/></assemblies></compilation>  
     
            <authentication mode="Windows"/>  
     
        </system.web> 
    </configuration> 

    Le quité los comentarios que se ponen por defecto.
    Un saludo!
    jueves, 26 de marzo de 2009 1:37
  • Dentro de tu IIS, cual es el proyecto que tu has desarrollado? "Aplicación Web" o "EPSONSty"?

    1. Nunca tildes los nombres de archivos y carpetas.
    2. Si uno de esos dos es tu aplicación que has desarrollado (tiene que ser :D), dale clic derecho en las propiedades de carpeta, y debes hacer que la carpeta sea una aplicación, osae pulsas el botón CREATE, y en execute permissions seleccionas Script Only, como esta imagen:

    http://ehampshire.com/computer/Technical%20Reference%20NT%20IIS%205_0%20and%20Win2K%20Hardening%20Configuration_files/iis5_w2k_13.gif.

    Lo que pasa es que ahorita, si bien tus carpetas están en el IIS, no son directorios virtuales, por ende son aplicaciones Web. Y como esa carpeta no es una aplicación Web, no puede tener un archivo de configuración (web.config).

    Saludos,


    Sergio Tarrillo - http://sergiot2.com/blog/
    Si la respuesta ha sido de utilidad marca la como respuesta correcta.
    • Propuesto como respuesta sergio.tarrillo jueves, 26 de marzo de 2009 5:50
    • Marcado como respuesta Sebastian2009 jueves, 26 de marzo de 2009 17:52
    jueves, 26 de marzo de 2009 5:50
  • Si!!!!!!!!! pude ver mi aplicación por fin!!!!!!!!!!!!!! :D muchas gracias Sergio :D
    Mi aplicación es "Aplicación Web" (lo EPSONSty ni idea de qué es ni qué hace allí jeje), de igual modo cambié hoy el nombre de la carpeta solo a Web porque pensé que capaz que eso estaba impidiendo ver la página.

    Marco como correcta el tema pero sigo preguntando jej ya que el titulo del tema en fin se resolvió pero ahora pasa esto: mi proyecto (solución) tiene la aplicación web, un servicio web y además otro componente dentro del proyecto (del tipo Biblioteca de clases) que tiene clases que utiliza la aplicación web para conectarse con el servidor remoto, etc.

    Vi que el componentes del web service también tiene la opción Publicar, tengo que publicarlo y ponerlo en mi IIS cierto? para que la aplicación pueda consumir el servicio sin problemas? porque en mi aplicación funcionan todas las páginas (desde el iis) pero no traen los datos de la base de datos, y cuando yo la ejecuto desde mi solución en vs 2005 no pasa eso, anda lo más bien.
    Supongo que tendré que publicar eso también.. pero cómo hago para que la aplicación web "apunte" a donde está ese componente en el iis? y con la biblioteca de clases cómo hago para que la aplicación web la consuma? un entrevero barbaro!! de pensar que puede no salir me muero luego de tanto lio con el iis :)

    Gracias de nuevo y saludos =)
    jueves, 26 de marzo de 2009 7:12
  • Primero, no te olvides de marcar la respuesta como correcta. Y si tienes nuevas preguntas, mejor en un nuevo tema.

    1. El Web Services es una aplicación ASP.NET, asi que se publica de la misma forma que un Sitio Web.
    2. Quien tiene la referencia al Servicio Web, en tu solución?. Cuando haz agregado esa referencia te debio haber creado una sección en el web.config o en app.config depende del proyecto, para que el cambio de URL sea configurable, y lo debes poder hacer desde ahí.
    3. Si tu Aplicación Web, referencia a un proyecto de clases en tu proyecto, y si publicas la aplicación Web, automáticamente tambien se publicara la DLL del proyecto de clases referenciadas. Y esto va en la carpeta BIN, del IIS.
    4. Si un proyecto de libería de clases usa archivos de configuración, y una aplicación Web usa esa librería, los elementos de configuración del proyecto de clases, deben ir en el web.config de la aplicación Web.

    Saludos,


    Sergio Tarrillo - http://sergiot2.com/blog/
    Si la respuesta ha sido de utilidad marca la como respuesta correcta.
    • Propuesto como respuesta sergio.tarrillo jueves, 26 de marzo de 2009 13:31
    jueves, 26 de marzo de 2009 13:30
  • Sergio: me fijé en la carpeta bin de mi sitio en el iis y vi las dll que usa mi aplicación web, asi que por lo de la biblioteca de clases que agregué ya no me preocupo, pero sigo sin comprender bien el tema del servicio web que usa.
    En mi web config, cuando creé el servicio web y le agregué a la aplicación web la referencia web a ese servicio, se generó la línea 
        <appSettings> 
        <add key="Alta.Alta" value="http://localhost:3111/Servicios Web/Alta.asmx"/>  
        </appSettings> 

    Mismo en la carpeta bin del iis, vi que también está el archivo App_WebReferences.compiled, App_WebReferences.dll, entre muchos otros.
    Tengo que publicar el servicio web en el iis para que funcione? y cuando esté en la página web de mi aplicación, usará el servicio? o tengo que cambiar yo a mano algo en el web.config de mi aplicación web? Me hace un entrevero que ni veas :P

    Saludos!
    jueves, 26 de marzo de 2009 23:58
  • A ver por partes.

    1. Si tienes que publicar el servicio web para que funcione, es una aplicación Web, y por ende debe estar en un servidor Web, osea en IIS.
    2. El archivo web.config, es justamente para cambiar a mano y hacer las configuraciones mas fácil. Suponiendo que publicas tu servicio Web, en tu IIS donde esta la misma aplicación Web, y el directorio Virtual se llama: "Servicios Web", entonces tu appSettings debe ser así:

    <appSettings>     
       <add key="Alta.Alta" value="http://localhost/Servicios Web/Alta.asmx"/>    
    </appSettings>    
     

    Si el servicio Web, estará en un servidor distinto al de la aplicación Web, en el appSettings de la aplicación Web, tienes que cambiar localhost, por la IP o nombre del servidor donde esta alojado el Servicio Web.

    Este trabajo, generalmente se hace una sola vez cuando se instala la aplicación en el servidor Web.

    Saludos,
    Sergio Tarrillo - http://sergiot2.com/blog/
    Si la respuesta ha sido de utilidad marca la como respuesta correcta.
    viernes, 27 de marzo de 2009 5:02
  • Hola!!! Ha funcionado perfecto lo que me dijiste, ahora anda muy bien todo :D
    Muchísimas gracias por toda tu ayuda! :D
    Saludos
    Sebastián
    sábado, 28 de marzo de 2009 0:24