msdn12_capa.JPG

Clique aqui para ler todos os artigos desta edição

 

Configuração do ASP.NET

por George Shepherd

Este artigo discute

Este artigo usa as seguintes tecnologias:

·         Arquivos de configurações do ASP.NET

XML, ASP.NET, C#

 

Download:

TestRun0408.exe (130KB)

Chapéu

ASP.NET

 

 

Mesmo que você já esteja usando o ASP.NET por algum tempo, o quanto realmente sabe sobre os arquivos de configuração do ASP.NET? Embora você já tenha tocado no arquivo Web.config de vez em quando, há algumas nuanças envolvidas na configuração do ASP.NET que talvez não tenha notado. Aqui descreverei a arquitetura por trás dos arquivos de configuração do ASP.NET e mostrarei como as alterações na configuração afetam os programas em execução. Abordarei também várias maneiras de adicionar suas próprias configurações personalizadas, inclusive como implementar um conjunto independente para tratar configurações personalizadas para aplicativos específicos.

 

Machine.config

Ao instalar o Microsoft® .NET Framework, um arquivo XML chamado Machine.config é instalado no diretório \Windows\Microsoft.Net\Framework\xxx\config (onde xxx é 1.0.3705 para a versão 1.0 do Framework, ou 1.1.4322 para a versão 1.1). O arquivo Machine.config contém as configurações padrão da sua instalação e define os parâmetros que determinam como o .NET funciona em toda a máquina.

Ao percorrer todo o Machine.config, você encontrará nós de todos os tipos de configuração de máquina. Verá , e , entre outros. Como você pode imaginar, contém configurações de gerenciamento de comportamento de diagnóstico da instalação e como mensagens e listeners de rastreamento são gerenciados na sua máquina. A seção contém as configurações para gerenciar como o remoting se comporta em sua máquina. Essas configurações incluem itens como que componentes são usados para administrar os canais.

A seção que queremos analisar é , que contém as configurações que informam ao sistema exatamente como o ASP.NET deve funcionar em sua máquina. O nó contém outras seções e grupos. Próximo ao início do Web.config, você encontrará as seções dentro de . Por exemplo, a Listagem 1 mostra as seções que definem recursos do navegador, alvos de cliente, opções de compilação e configurações de processamento de páginas. Observe que estas não são as definições de configuração propriamente ditas (veremos sobre isso mais tarde). Esses elementos simplesmente associam uma seção dentro do arquivo de configuração a um grupo e tipo específicos que analisa as configurações e as interpreta em tempo de execução.

 

Listagem 1 Grupo da seção system.web Section Group

  

      "System.Web.Configuration.HttpCapabilitiesSectionHandler,

         System.Web, Version=1.0.5000.0, Culture=neutral,

         PublicKeyToken=b03f5f7f11d50a3a"/>

  

      "System.Web.Configuration.ClientTargetSectionHandler,

         System.Web, Version=1.0.5000.0, Culture=neutral,

         PublicKeyToken=b03f5f7f11d50a3a"/>

  

 

  

 

 

Form1.aspx.cs

private void Page_Load(object sender, System.EventArgs e)

{

  if(!this.IsPostBack)

  {

    DropDownListappSettingsKeys.DataSource =

        ConfigurationSettings.AppSettings.Keys;

    DropDownListappSettingsKeys.DataBind();

  }

}

 

private void ButtonGetValueOfAppSettingKey_Click(

  object sender, System.EventArgs e)

{

  string strKey = DropDownListappSettingsKeys.SelectedItem.Text;

  string strValueOfKey = ConfigurationSettings.AppSettings[strKey];

  LabelValueOfappSettingsKey.Text = strValueOfKey;

}

 

 

Usando NameValueFileSectionHandler

A maioria das definições de configuração tendem a ser pares nome/valor (como no exemplo anterior). A seção já está montada e você pode acessar facilmente parâmetros de configuração em tempo de execução. Contudo, há casos em que você pode ter que isolar um conjunto de definições de configuração ou defini-las de outra forma em separado. Por exemplo, os aplicativos do seu domínio podem ter alguma informação especial que você deverá incluir em um grupo nomeado em separado (ou seja, fora do appSettings).

A maneira mais fácil de fazer isso é definir sua própria seção nomeada, mas use o componente NameValueSectionHandler existente para analisá-la e crie um grupo de pares chave/valor que você possa acessar em tempo de execução. A Listagem 3 mostra como definir um grupo de configuração em separado e instruir o ASP.NET para usar o NameValueSectionHandler para analisá-lo. Observe como o Web.config do aplicativo acrescenta um e uma nomeada ao elemento e informa ao ASP.NET para usar o componente NameValueSectionHandler para analisá-lo. O System.dll, que contém o tipo NameValueSectionHandler, é um conjunto de sistema nomeado de maneira forte, assim é preciso usar o nome completo do conjunto para poder especificar o handler.

 

Listagem 3 Definindo um grupo de configuração em separado

Web.config