2011-03-31 13 views
46

Al implementar mi sitio web, descubrí que podía convertir una carpeta en una carpeta virtual o aplicación web, estoy totalmente confundido acerca de estos 2 conceptos.¿Cuál es la diferencia entre la aplicación web y la carpeta virtual en el contexto de IIS 7.x?

  • ¿Por qué hay dos tipos diferentes?

  • ¿Cuál es el propósito de cada uno?

+2

Duplicado de http://stackoverflow.com/q/1002981/80161 –

+0

Recientemente cambié a Tomcat. Descubrí que es menos concepto y un modelo de implementación más claro. – smwikipedia

Respuesta

76

Una carpeta virtual o directorio virtual es solo un enlace a una carpeta física en algún lugar del servidor. Esta carpeta se convierte en parte de la estructura del sitio web y puede usar el directorio virtual en la parte de ruta de las URL. El código que se ejecuta en los Directorios virtuales se ejecutará en la misma "Aplicación" como su padre.

Una aplicación es donde el código que se ejecuta dentro de esa "carpeta" tiene su propio estado de sesión y estado de aplicación. En efecto, es una nueva aplicación independiente que vive debajo de la aplicación raíz. Por ejemplo, si desplegara una aplicación ASP.NET en un sitio que tuviera una carpeta de aplicación llamada /myapp, esa aplicación tendría su propio dominio de aplicación, estado de sesión, estado de la aplicación completamente separado de otra aplicación ASP.NET. ejecutándose en /. Por ejemplo: si establece un valor de Aplicación Application["Thing"] = 123 en la aplicación raíz y luego hizo lo mismo pero con un valor diferente en /myapp, entonces Application["Thing"] en la raíz no se sobrescribirá con la asignación en /myapp.

Otra cosa que puede hacer con la aplicación es especificar un grupo de aplicaciones diferente para ejecutar. Por ejemplo, la aplicación raíz / puede contener una aplicación ASP.NET 2.0 y ejecutarse en un grupo configurado para .NET 2.0. Sin embargo, es posible que desee ejecutar una aplicación de blog o foro escrita en ASP.NET 4.0. Ahora, como no puede mezclar las versiones de tiempo de ejecución de ASP.NET en el mismo grupo de aplicaciones, puede especificar un grupo de aplicaciones alternativo específicamente para las aplicaciones ASP.NET 4.0.

Las aplicaciones también pueden comportarse como Directorios virtuales y puede apuntar una carpeta de aplicaciones a una carpeta física en otro lugar en el servidor.

Si usted está interesado en la mecánica subyacente de los directorios virtuales y aplicaciones en IIS7 continuación, echar un vistazo a esta respuesta he publicado hace un tiempo:

Using ServerManager to create Application within Application

1

Para agregar un informativo detalle de lo que Kev ha mencionado muy bien: todos los directorios virtuales se ejecutan de manera predeterminada en un grupo de aplicaciones predefinidas llamado DefaultAppPool. DefaultAppPool viene de manera predeterminada con IIS cada vez que habilita esta característica en Windows. Para WebApps siempre puedes crear pools de aplicaciones nuevos/nuevos y ejecutar tu aplicación web dentro de tu appPool recién creada. Estas appPools le proporcionan ese espacio de proceso físico/separado (en forma de procesos de trabajo) con la ayuda de la cual IIS puede proporcionar servicios como estado de sesiones, estado de aplicación, etc. en silos a una aplicación web cuando tiene su propia apppool definida. Cada vez que la appPool de su aplicación web se bloquea, las otras aplicaciones web (utilizando su propia appPool personalizada) o los directorios virtuales (usando DefaultAppPool appPool) permanecen completamente intactos.

Cuestiones relacionadas