Jump to content

[Resolvido] - ASP .NET Web.config alterado dinamicamente


skcratch

Recommended Posts

Viva!

Neste momento, estou a desenvolver uma aplicação cujo deploy deverá ser feito em muitos locais distintos, com as suas especificidades próprias. No entanto, algumas das configurações que serão guardadas neste fase no ficheiro web.config da aplicação, poderão ter que ser alteradas no futuro. Sendo assim, foi fornecida uma interface ao utilizador da aplicação, para que possa efectuar as referidas alterações.

O método que estou a utilizar neste momento, é a seguir apresentado:

protected void EditConfigButton(string _key, string _value)
    {
        Configuration objConfig = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~/Projecto");
        AppSettingsSection objAppsettings = (AppSettingsSection)objConfig.GetSection("appSettings");
        //Edit
        if (objAppsettings != null)
        {
            objAppsettings.Settings[_key].Value = _value;
            objConfig.Save(ConfigurationSaveMode.Full);
        }
    }

Basicamente, este método, dado uma determinada chave, actualiza o valor correspondente. No entanto, este método é invocado individualmente para cada entrada do ficheiro web.config que seja passível de ser editada. Sendo assim, o processo torna-se lento, já que o número de entradas é bastante elevado.

Por outro lado, na interface referida anteriormente, o controlo TextBox onde o utilizador pode inserir o novo valor, é lido de forma individual, sendo um exemplo fornecido a seguir:

private string valorTeste = WebConfigurationManager.AppSettings["chaveTeste"];

Mais uma vez, como são muitas entradas, este processo é muito lento na inicialização. Como possível melhoria, estava a pensar fazer o load do web.config para memória e fazer a leitura/escrita quando necessário.

Acham que desta forma poderia ter um aumento de performance?

Grato desde já pela ajuda,

Cumps!

😄

P.S. -> Desculpem o tópico tão longo!  😛

Link to comment
Share on other sites

A modificação do web.config se tem mesmo q ser por uma aplicação, deve ter uma página web (ou web form, como preferires) propria para a sua edição.

Quando acederes a essa página, aí sim, podes carregar tudo para memória.

No entanto, a performance da edição desse ficheiro não é mto importante, pq n é uma coisa para andar a mexer com frequencia.

Mas na minha opinião, o web.config n devia ser alterado por utilizadores através de uma aplicação, mas sim por pessoas com as competencias técnicas necessárias.

Matraquilhos para Android.

Gratuito na Play Store.

https://play.google.com/store/apps/details?id=pt.bca.matraquilhos

Link to comment
Share on other sites

Viva!

Compreendo o que queres dizer mas existem certas parametrizações que julgo que devem estar no web.config e que fazem sentido que seja o administrador da aplicação a poder alterar.

E sim, a performance é algo que não fundamental neste caso em particular. Se calhar vou optar por manter a abordagem inicial.

Obrigado pela ajuda!

Cumps!

😄

Link to comment
Share on other sites

Antes da edição do web.config, convém fazeres sempre um backup do original.

Só se toda a edição correr bem é q fazes a substituição.

Podes adicionar uma data ao nome do ficheiro, assim manténs backups das actualizações.

Matraquilhos para Android.

Gratuito na Play Store.

https://play.google.com/store/apps/details?id=pt.bca.matraquilhos

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.