Configurações do aplicativo fora do web.config

4

Eu preciso manter a seção de configurações do aplicativo de produção fora do Web.config; Eu não quero que chaves e outras informações secretas sejam mantidas dentro do repositório de código-fonte. No entanto, se eu editar as configurações do aplicativo com o IIS Mananger, ele altera o Web.config, que será sobrescrito na próxima implantação.

Como posso manter essas configurações fora do Web.config que vem com o aplicativo na implantação? Por exemplo, isso é feito de alguma forma pelos Sites do Azure - as configurações do aplicativo que você configura no portal não são armazenadas no Web.config - que podem ser confirmadas por meio do download do arquivo via FTP. Como isso é feito?

    
por Mircea Chirea 06.02.2014 / 20:02

2 respostas

4

Para os nós appSettings e connectionStrings no web.config, você pode movê-los para arquivos separados fora do web.config.

No seu web.config você teria:

<appSettings configSource="appsettings.config"></appSettings>

e, em seguida, um novo arquivo appsettings.config:

 <?xml version="1.0"?>
 <appSettings>
     <add key="foo" value="bar" /> 
 </appSettings>

Depois, você precisa garantir que não implemente esses novos arquivos e os mantenha diferentes no servidor de produção e no seu ambiente de desenvolvimento.

Todos os meus arquivos web.config são excluídos do meu processo de implantação, se eu precisar alterá-los, faço isso no palco ou nos sites de produção.

    
por 10.02.2014 / 19:48
0

Além dos arquivos web.config em seus sites, há várias configurações globais para o IIS.

%systemroot%\System32\inetsrv\config\applicationHost.config

tem todas as configurações globais do IIS, dependendo de suas configurações de Feature Delegation , elas podem ser sobrescritas em seu web.config (s) local. Mas você pode evitar isso definindo um recurso como 'Somente leitura' na Delegação de recursos no nível do servidor.

Para configurações relacionadas ao dot.NET existem dois arquivos globais:

%systemroot%\Microsoft.NET\Framework??\v?.?.????\CONFIG\machine.config
%systemroot%\Microsoft.NET\Framework??\v?.?.????\CONFIG\web.config

Existem várias versões desses arquivos, uma para cada versão de estrutura para cada plataforma de sistema operacional.

Quaisquer configurações feitas nesses arquivos são herdadas pelo seu web.config local.

No entanto, não acho que haja uma maneira de impedir que um web.config local substitua as configurações definidas nos arquivos globais.

    
por 08.02.2014 / 18:53