2009-04-23 11 views
11

¿Es posible negar completamente un web.config en una subcarpeta?¿Es posible negar por completo un web.config "superior" en una subcarpeta?

Obviamente, tengo un web.config en la raíz.

Si tengo una subcarpeta llamada "MyApp", ¿puedo escribir un montón de código y ejecutarlo sin ninguna referencia a web.config en la raíz? Tendría su propio web.config, y ni siquiera haría referencia al web.config "superior" en la raíz.

Lo que estoy buscando es un aislamiento completo de la aplicación. Me gustaría poder escribir una aplicación en una subcarpeta de un sitio existente, que ignora toda la jerarquía web.config que está sobre ella, la aplicación sería una isla para ella sola.

Sé que puedo usar el elemento "claro", pero ¿es esa la mejor manera? Simplemente ponga un "claro" debajo de cada elemento de nivel superior? Me pregunto si hay otra manera.

duplicados de Will a child application inherit from its parent web.config?

+1

No es realmente un duplicado. –

Respuesta

1

Sí, debe borrar esas secciones que desea sobrescribir. Pensando en ello un poco más, esto tiene sentido, ya que la única manera de borrar todo podría hacer que sea muy difícil decidir qué eliminar. Clear normalmente restablece todo, incluso la raíz web.configs en web.configs y machine.config definidos en la carpeta frameworks/config de su servidor.

Tenga en cuenta que también perderá acceso a la carpeta/bin,/app_code, etc. Esto puede ser o no lo que desea.

Si usted puede crear sub-aplicaciones con su host es otra cuestión a considerar también.

+0

"no tendrá conocimiento de la aplicación principal, ni es web.config [...]" - No creo que esto sea cierto. Puede acceder a AppSettings desde una configuración web principal, los módulos aún se aplican, etc. De hecho, he tenido que "eliminar" módulos explícitamente de web.configs superiores. – Deane

+0

Hmm, buen punto, acabo de probar eso, y tienes razón. Eso es nuevo para mí, actualizaré mi respuesta en breve. –

+0

Su explicación de por qué no puede abandonar por completo la web.configs más alta tiene sentido; hay cosas en el nivel de configuración de la máquina, por ejemplo, y hace que el servidor web funcione, por lo que debe borrarlas de forma selectiva. – Deane

1

No. Por diseño para alojamiento compartido y el motivo de la simplicidad.

IIS7 cambia un poco al permitir que las configuraciones se bloqueen/desbloqueen explícitamente.

1

Parece más bien que debe crear un directorio virtual que sea otra raíz de aplicación por completo.

0

acabo encontré este problema en mi trabajo y mi solución fue crear un nuevo sitio web, en lugar de intentar anidar mi aplicación en el sitio web existente. Mantuve el mapeo de dominio igual para la nueva aplicación (es decir, www.misitio.com) pero cambié el número/mapeo del puerto.

Como resultado puedo usar mi nueva aplicación en www.misitio.es:88 y no tuve que usar un subdominio.

La advertencia aquí es que mi aplicación es un servicio web, por lo que tener que especificar el número de puerto en la URL era una posibilidad para mí. Puede que no sea una opción para ti, pero pensé que publicaría esto en caso de que ayude a alguien en mi situación.

La solución <location path="." inheritInChildApplications="false"></location> no era una opción para mí, ya que el inheritInChildApplications no parece existir antes de ASP.Net Framework 4.0?

Cuestiones relacionadas