Tengo algunos problemas con la implementación de mi aplicación y, mientras solucionaba problemas, encontré el Web.Config
archivo en la Views
carpeta. En un intento por reducir las posibilidades de las fuentes de mi problema, traté de averiguar el propósito de ese archivo ~ Web.Config` pero realmente no puedo encontrar mucha información.
Entonces, básicamente, mis preguntas son:
- ¿Qué hace el
Web.config
archivo en laViews
carpeta de un proyecto MVC? - ¿Es necesario?
En los formularios web Asp.Net, creo que para usar un archivo web.config separado en una carpeta, esa carpeta debe configurarse como una carpeta virtual en IIS. ¿Es este el caso en MVC (es decir, es Views
necesario configurar la carpeta como una carpeta virtual)?
asp.net-mvc
web-config
Ola Karlsson
fuente
fuente
Respuestas:
No, no necesita configurar una carpeta virtual debido a este archivo web.config adicional.
El archivo web.config existe en las carpetas Vistas para evitar el acceso a sus vistas por cualquier medio que no sea su controlador. En el patrón de diseño MVC, se supone que los controladores enrutan las solicitudes y devuelven una vista renderizada al cliente que realiza la llamada.
En otras palabras, su vista en www.mydomain.com/MySuperController/AwesomeAction1/SweetPage.aspx no debería ser directamente accesible.
Si echa un vistazo al archivo web.config, en realidad registra
HttpNotFoundHandler
todas las rutas y verbos:<add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
O, en IIS 7, podría parecer
<add name="BlockViewHandler" path="*.aspx" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler"/>
fuente
Configura el compilador para las vistas, como la importación de espacios de nombres, y hace que la carpeta de vistas devuelva un 404.
fuente
El archivo web.config en la carpeta de vistas es para realizar algunas configuraciones especializadas que desea aplicar a las páginas dentro de la carpeta de vistas.
Como configuraciones de configuración como: cadena de conexión / configuración de aplicaciones, etc.
pero eso será aplicable solo a esa carpeta y el resto del proyecto recogerá la configuración de web.config presente en la raíz.
Especialmente cuando use el concepto de área, habrá una carpeta separada para cada área que contiene un archivo web.cfg separado donde puede aplicar configuraciones separadas para cada área.
fuente
Eso es si desea anular algo mencionado en la parte superior
web.config
, es decir, si desea personalizar algo dentro del alcance de laViews
carpeta.fuente