Estou tendo alguns problemas para implantar meu aplicativo e, durante a solução de problemas, encontrei o Web.Config
arquivo na Views
pasta. Na tentativa de restringir as possibilidades de fontes para o meu problema, tentei descobrir o propósito daquele arquivo ~ Web.Config`, mas não consigo encontrar muitas informações.
Então, basicamente, minhas perguntas são:
- O que o
Web.config
arquivo faz naViews
pasta de um projeto MVC? - É necessário?
Em webforms Asp.Net, acredito que para usar um arquivo web.config separado em uma pasta, essa pasta deve ser definida como uma pasta virtual no IIS. É esse o caso no MVC (ou seja, a Views
pasta precisa ser configurada como uma pasta virtual)?
asp.net-mvc
web-config
Ola Karlsson
fonte
fonte
Respostas:
Não, você não precisa configurar uma pasta virtual por causa deste arquivo web.config extra.
O arquivo web.config existe nas pastas Views para impedir o acesso às suas views por qualquer meio diferente do controlador. No padrão de projeto MVC, os controladores devem rotear solicitações e retornar uma visualização renderizada para o cliente de chamada.
Em outras palavras, sua visualização em www.mydomain.com/MySuperController/AwesomeAction1/SweetPage.aspx não deve ser diretamente acessível.
Se você olhar o arquivo web.config, ele realmente registra o
HttpNotFoundHandler
para todos os caminhos e verbos:<add path="*" verb="*" type="System.Web.HttpNotFoundHandler"/>
Ou, no IIS 7, pode parecer
<add name="BlockViewHandler" path="*.aspx" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler"/>
fonte
Ele configura o compilador para as visualizações, como a importação de namespaces, e faz com que a pasta de visualizações retorne um 404.
fonte
O arquivo web.config na pasta de visualizações faz algumas configurações especializadas que você deseja aplicar às páginas dentro da pasta de visualizações.
Como configurações de configuração como: string de conexão / appsettings etc.
mas isso será aplicável apenas a essa pasta e o resto do projeto pegará as configurações do web.config presente na raiz.
Especialmente quando você usa o conceito de área, haverá uma pasta separada para cada área contendo um arquivo web.cfg separado, onde você pode aplicar configurações separadas para cada área.
fonte
Isso se você quiser sobrescrever algo mencionado na parte superior
web.config
, ou seja, se quiser personalizar algo dentro do escopo daViews
pasta.fonte