Estou tentando adicionar
<location inheritInChildApplications="false">
ao web.config do meu aplicativo Web pai, mas ele não parece estar funcionando.
Os meus pais web.config
têm:
<configuration>
<configSections>
</configSections>
// 10 or so custom config sections like log4net, hibernate,
<connectionStrings>
</connectionStrings>
<appSettings>
</appSettings>
<system.diagnostics>
</system.diagnostics>
<system.web>
<webParts>
</webParts>
<membership>
</membership>
<compilation>
</compilation>
</system.web>
<location ..>
<system.web>
</system.web>
</location>
<system.webServer>
</system.webServer>
Meu aplicativo Web filho é configurado como um aplicativo no IIS e é herdado dos pais, o web.config
que está causando problemas.
Onde exatamente devo colocar o
<location inheritInChildApplications="false">
então ele ignora todas as várias configurações do web.config?
fonte
inheritInChildApplications
não está sendo aceito como um parâmetro válido para o<location />
elemento Meu site está executando o SharePoint (2007). Criei um aplicativo em um diretório virtual neste site, gerenciado por seu próprio pool de aplicativos. No entanto, estou enfrentando conflitos entre a configuração do SharePoint e esse aplicativo. Veja esta pergunta que eu publiquei no Server Fault.<location>
para tempo de execução ...Ele precisa ir diretamente sob o
<configuration>
nó raiz e você precisa definir um caminho como este:Uma maneira melhor de lidar com a herança de configuração é usar um
<clear/>
na configuração filho sempre que você não quiser herdar. Portanto, se você não quisesse herdar as seqüências de conexão da configuração pai, faria algo assim:fonte
Eu coloquei tudo em:
exceto:
<configSections/>
,<connectionStrings/>
e<runtime/>
.Existem alguns casos em que não queremos herdar algumas secções
<configSections />
, mas não podemos colocar<section/>
tags<location/>
, portanto precisamos criar um<secionGroup />
e colocar nossas seções indesejadas nesse grupo. Grupos de seção podem ser posteriormente inseridos em uma tag de localização.Então, temos que mudar isso:
Para dentro:
fonte
myNotInheritedSections
paraef6Private
eunwantedSection
é aentityFramework
seção<configSections> <sectionGroup name="ef6Private"> <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> </sectionGroup> </configSections> <location path="." inheritInChildApplications="false"> <ef6Private> <entityFramework /> </ef6Private> </location>
Estávamos recebendo um erro relacionado a isso após um recente lançamento de código em um de nossos ambientes de desenvolvimento. Temos um aplicativo que é filho de outro aplicativo. Esse relacionamento tem funcionado bem por YEARS até ontem.
O problema:
estávamos recebendo um erro de rastreamento de pilha amarelo devido à inserção de chaves duplicadas. Isso ocorre porque o web.config para os aplicativos filho e pai tinha essa chave. Mas isso existiu por muitos anos como esse sem mudanças. Por que de repente é um problema agora?
A solução:
A razão pela qual isso nunca foi um problema é porque as chaves E os valores sempre foram os mesmos. Ontem, atualizamos nossas cadeias de conexão SQL para incluir o Nome do Aplicativo na cadeia de conexão. Isso tornou a string única e, de repente, começou a falhar.
Sem fazer nenhuma pesquisa sobre o motivo exato disso, devo assumir que, quando o aplicativo filho herda os valores web.config dos pais, ele ignora pares de chave / valor idênticos.
Conseguimos resolvê-lo envolvendo a cadeia de conexão como esta
Edit: Eu esqueci de mencionar que eu adicionei isso no web.config dos PAIS. Não precisei modificar o web.config da criança.
Obrigado por todos ajudarem nisso, salvou nossos traseiros.
fonte
Se (como eu entendo) você estiver tentando bloquear completamente a herança na configuração da Web do seu aplicativo filho, sugiro que você evite usar a tag no web.config. Em vez disso, crie um novo apppool e edite o arquivo applicationHost.config (localizado em% WINDIR% \ System32 \ inetsrv \ Config e% WINDIR% \ SysWOW64 \ inetsrv \ config). Você apenas precisa encontrar a entrada para o seu pool de aplicativos e adicionar o atributo
enableConfigurationOverride="false"
como no exemplo a seguir:Isso evitará a herança de configuração nos aplicativos servidos pelo MyAppPool.
Matteo
fonte
/preview
para que as pessoas possam testar uma nova versão antes de torná-la ativa. Todo mundo sempre sugere<location>
para corrigir esse problema, então fiquei muito empolgado ao ler sua postagem. No entanto, se queixaThe entry 'default' has already been added.
de uma entrada de configuração relacionada AppFabric mesmo quando eu usoenableConfigurationOverride="false"
enableConfigurationOverride="false"
no meu aplicativo raiz, ele mata completamente o aplicativo raiz e nem funciona :-(Esta é a página da microsoft na
location
tag: http://msdn.microsoft.com/en-us/library/b6x6shw7%28v=vs.100%29.aspxPode ser útil para algumas pessoas.
fonte
Estamos recebendo erros sobre diretivas de configuração duplicadas em um de nossos aplicativos. Após a investigação, parece que é por causa desse problema .
Em resumo, nosso site raiz é o ASP.NET 3.5 (que é 2.0 com bibliotecas específicas adicionadas) e temos um subaplicativo que é o ASP.NET 4.0.
A herança web.config faz com que o sub-aplicativo ASP.NET 4.0 herde o arquivo web.config do aplicativo ASP.NET 3.5 pai.
No entanto, o web.config global (ou "raiz") do aplicativo ASP.NET 4.0, que reside em C: \ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ Config \ web.config e C: \ Windows \ Microsoft. NET \ Framework64 \ v4.0.30319 \ Config \ web.config (dependendo da sua testemunha), já contém essas seções de configuração.
O aplicativo ASP.NET 4.0 tenta mesclar o ASP.NET 4.0 web.config raiz e o web.config pai (o de um aplicativo ASP.NET 3.5) e executa duplicatas no nó.
A única solução que consegui encontrar é remover as seções de configuração do web.config pai e, em seguida,
fonte