Herança de configurações no Web.Config

O nosso dia a dia é sempre cheio de novidades e isso que deixa os nossos projetos cada vez mais divertidos. Hoje eu tive que fazer alguns ajustes em uma aplicação que está rodando no root do servidor web e possui outras aplicações rodando em baixo dessa mesma pasta.

A grande questão envolvida é que as configurações que inserimos no Web.Config da aplicação principal são propagadas para a aplicação que está em baixo da mesma estrutura de diretório conforme o modelo:

APP00 (Root) (Web.config)
+—–App01 (Web.config)
+—–App02 (Web.config)

Então de uma forma natural você acaba injetando dependências nas outras aplicações que está em baixo dessa mesma estrutura de diretório. Para resolver isso você precisa agir no Web.Config da aplicação principal e adicionar o atributo location com o parâmetro inheritInChildApplications="false" para impedir que configurações sejam propagadas para as outras aplicações. Essa necessidade se torna muito visível principalmente quando você adiciona referencias para módulos http em <system.Web>

<location path="." inheritInChildApplications="false">
    <system.web>
   </system.web>  
</location>

How to disable web.config Inheritance for Child Applications in Subfolders in ASP.NET
Bloqueando herança do web.config

 

[],
Ramon Durães
MVP, Especialista em Visual Studio Team System
2PC Consultoria & Treinamentos