2009-12-22 9 views
10

tengo un proyecto ASP.NET que tiene las siguientes directorios

\ anuncios
\ fotos
Uso de directorios virtuales de IIS en proyectos de aplicación Web de Visual Studio

tanto estas carpetas tienen miles de archivos en ellos que se actualizan con frecuencia. Actualmente tengo puesto mi IIS arriba como

\ inetpub \ wwwroot \ foo
\ inetpub \ wwwroot \ foo \ anuncios
\ inetpub \ wwwroot \ foo \ fotos
\ inetpub \ wwwroot \ foo.staging
\ inetpub \ wwwroot \ foo.staging \ anuncios
\ inetpub \ wwwroot \ \ foo.staging fotos

estoy considerando convertir esto en

\ in etpub \ wwwroot \ foo
\ inetpub \ wwwroot \ foo \ anuncio
\ inetpub \ wwwroot \ foo \ fotos
\ inetpub \ wwwroot \ foo.staging
\ inetpub \ wwwroot \ \ foo.staging anuncios
\ inetpub \ wwwroot \ foo.staging \ fotos
\ inetpub \ wwwroot \ \ foo.resources anuncios
\ inetpub \ wwwroot \ \ foo.resources fotos

y convirtiendo los subdirectorios en foo y foo.staging en directorios virtuales que apuntan al subdirecto foo.resources risas De esta forma, mientras estoy probando en etapas, no tengo que copiar todos los archivos en anuncios y fotos cada vez que despliegue y me preocupo por que las cosas no estén sincronizadas. ¿Es una mala idea? Estoy desarrollando en Visual Studio 2008 - ¿Hay alguna manera de que VS trate los subdirectorios de proyectos de mi aplicación web como directorios virtuales?

+0

Me encantaría saber esto también. Permitir que los directorios virtuales estén dentro del proyecto me permitiría replicar con mayor precisión nuestras estructuras de sitios web de entornos de producción. – Russell

Respuesta

0

Creo que la manera de hacerlo es configurarlo como lo desee en IIS primero con sus vdirs, luego abra el sitio web desde IIS en Visual Studio. Ver my answer al this question.

+0

gracias, también vi eso. que funciona para sitios web pero no para aplicaciones web – kenwarner

2

Un directorio virtual contenido en una aplicación web en IIS simplemente se ve como un paquete en Visual Studio.

Al abrir la aplicación raíz y hacer clic en el paquete, debería preguntarle si desea agregar la aplicación secundaria/vdir a la solución. Luego ábralo como un segundo proyecto, luego puede consultarlo o consumirlo según sea necesario.

La idea detrás de las implementaciones de prueba y en vivo es que debe tener datos separados en caso de que su prueba rompa algo. Básicamente, al usar los datos en vivo para las pruebas, debe asegurarse de no borrar/alterar algo que no debería o romperá su copia en vivo de los datos.

Habiendo dicho eso, si todo lo que planea construir es algo que lea los datos, esta es una gran idea, ya que le ahorrará mucho espacio en disco y tiempo en las implementaciones.

Obténgalo de la forma que desee en IIS primero y luego abra las cosas en VS.

Visual Studio trata todas las aplicaciones virtuales definidas en el servidor como una aplicación secundaria. Si los recursos no están configurados en los directorios secundarios como una aplicación en IIS, debería aparecer como una carpeta normal.

Por ejemplo ...

Si configura 2 sitios web de IIS y mapear la carpeta física de las imágenes en tanto como directorios virtuales, usted debe tener acceso a ellos como carpetas normales cuando se abre ya sea en Visual Studio .

Sin embargo, si convierte los directorios virtuales en aplicaciones en IIS y luego abre el sitio web en VS, solo debería mostrar un paquete. Al hacer clic en eso, se agrega como un segundo proyecto en VS.

No soy el mejor para explicar las cosas pero espero que tenga sentido.

espero que ayude :)

0

veo un problema similar con mi solicitud con respecto a tener un montón de recursos para copiar hasta el despliegue.
Estoy considerando crear un controlador de archivos que sirva recursos de imágenes para el navegador. Es decir. Al vincular a imágenes que tendría algo como /filehandler.ashx?image=/ads/101/o3904838402384.jpg, entonces puede tener simplemente un ajuste de configuración que apunte a diferentes o las mismas carpetas de almacenamiento de archivos para los entornos Test y Live.

Aquí hay un enlace a los fundamentos de cómo funciona.

http://dotnetperls.com/ashx-handler

0

Usted podía, uso vinculados carpetas en Visual Studio = Esto crea un enlace virtual a una carpeta en otro proyecto (o en otro lugar en el disco), pero no lo hace físicamente copiarlos en el disco.

+0

Paul, ¿has probado esto? –

+0

Para cosas pequeñas, sí, no he experimentado con nada particularmente complicado, pero para eso está hecho (afaik) – Paul

0

Otra opción ... Si usted está usando SVN y si eres feliz de tener las imágenes físicamente dos veces en el disco, pero todavía tienen sincronizados, es utilizar SVN Externals

+0

Paul, debería haber editado su respuesta original en lugar de agregar una nueva. –

+2

Pero son respuestas diferentes ... – Paul

0

Dado que se trata de recursos , ¿hay alguna razón particular por la que los necesitas para estar en Visual Studio? VS, IMO, es para administrar código en una solución, no necesariamente estructura de directorio.

En IIS, puede establecer la estructura de directorios exactamente igual que usted (o incluso hacer que el directorio virtual apunte a una unidad de red), y Visual Studio puede ignorarla por completo, ya que es probable que solo contenga un montón de archivos estáticos .

+0

Jordan, es agradable poder ver las imágenes cuando se utiliza la vista Diseño, y Visual Studio puede verificar si sus URL son válidas, pero solo si las imágenes realmente existen en el disco. –

Cuestiones relacionadas