Configurando processo no Windows Server AppFabric
As extensões do AppFabric para o Gerenciador IIS e os cmdlets do Windows PowerShell para o AppFabric fornecem maneiras mais diretas para que um proprietário de um aplicativo ou um profissional de TI possa Configurar Aplicativos criados nos serviços WCF ou WF. Este tópico descreve o que ocorre nos arquivos Web.config quando você configura um serviço ou aplicativo nas extensões do Gerenciador IIS ou pela configuração dos cmdlets do AppFabric. O tópico descreve primeiro que os arquivos Web.config são usados em um serviço de configuração, depois descreve como configurar um serviço diretamente e, por fim, descreve os padrões para um serviço a ser herdado.
Para obter mais informações sobre o uso dos arquivos Web.config no ASP.NET, consulte ASP.NET Configuration.
A hierarquia dos arquivos Web.config
Cada um dos itens na hierarquia de configuração do IIS pode ter seu próprio arquivo Web.config e um serviço pode herdar as configurações padrão dos arquivos do Web.config associados ao servidor, site, aplicativos e subdiretórios aos quais pertence o serviço. Como resultado, as configurações de um serviço são definidas por uma hierarquia de arquivos Web.config. Esta sessão descreve as regras que determinam quais arquivoa Web.config na hierarquia definem as configurações de serviço e quais elementos têm precedência nesses arquivos.
Quando o AppFabric é instalado em um servidor, ele cria um arquivo Web.config (caso não exista) no mesmo diretório do arquivo Machine.config(<unidade>:\Windows\Microsoft.NET\Framework\v4.0.xxxxx\Config). As configurações no arquivo Web.config desse servidor habilita o acompanhamento de serviço, persistência de Fluxo de Trabalho e o gerenciamento de instância de Fluxo de Trabalho. Você também pode ter um arquivo Web.config para um site, situado no diretório do site (<unidade>:\inetpub\wwwroot). Para um aplicativo, no diretório raiz do aplicativo e para um subdiretório de aplicativo. O site, aplicativo e arquivos Web.config do subdiretório não são instalados pela instalação do AppFabric. Se tentar usar as extensões do AppFabric no Gerenciador IIS para alterar as configurações em um escopo e o arquivo Web.config não estiver presente naquele escopo, os arquivos Web.config podem ser criados por você.
O arquivo Web.config pode conter definições de configurações em qualquer nível que são aplicadas diretamente a um serviço, mas caso queira definir diretamente o serviço na interface do usuário do Gerenciador IIS, você estará lidando com definições de serviço no aplicativo do arquivo Web.config. Além dessas configurações, os arquivos Web. config nos níveis do servidor, site, aplicativo e subdiretório pode conter configurações padrão que podem ser herdadas por um serviço. As configurações de aplicativo definidas pelas extensões do AppFabric para a interface do usuário do Gerenciador do IIS e dos cmdlets de configuração afetam somente os arquivos Web.config, e não o machine.config ou quaisquer ourtros que definem a confugração do ambiente. Uma exceção para aquela regra, que tem inicialização automática é definido pelo aplicativo no aplicativo no arquivo applicationHost.config até o hotel.
Um arquivo Web.config contém a hierarquia de marcas ee submarcas XML aninhada com os atributos que especificam as definições de configuração . Algumas definições de configuração para o serviço com base em WCF- e WF- são definidos dentro de um comportamento de serviços. No AppFabric a maioria mas nem todas as ferramentas editam comportamentos. Contudo, algumas definições de configurações são definidas fora de um comportamento de serviço. Por exemplo, monitoramento, endereços de pontos de extremidade e cotas de associação de transporte para um serviço são configuradas no arquivo Web.config, mas fora do comportamento. O coletor de eventos e as configurações de diagnóstico do sistema, ambos dentro do escopo no nível do aplicativo ou superior não são comportamentos definidos.
Dica
O AppFabric usa o MWA (Microsoft Web Administration) para gerenciar configuração. O MWA exige que todos os elementos de configuração sejam esquematizados. Para obter informações sobre como criar um esquema para os seus comportamentos personalizados, consulte Extending IIS 7.0 Schema and Accessing the Custom Sections Using MWA (a página pode estar em inglês).
Configurando diretamente um serviço
Você pode configurar um serviço usando um comportamento de serviço nomeado no arquivoWeb.config. Para tanto, insira o arquivo Web.config uma marca <serviço> com um atributo behaviorConfiguration que aponte para uma marca de comportamento de serviços. Um comportamento nomeado pode ser definido para um serviço em um arquivo Web.config no nível do aplicativo ou superior. A seguir, um exemplo de um serviço chamado TestService cuja configuração é definida em um comportamento de serviço nomeado como TestGetMetaData:
<system.serviceModel>
<services>
<service name="TestService" behaviorConfiguration="TestGetMetaData" >
<endpoint address="/TestService" binding="wsHttpBinding" contract="ITestService"/>
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="TestGetMetaData"> <serviceMetadata httpGetEnabled="true" httpGetUrl=""/> </behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
No .NET Framework 3.5, os meios mais diretos de configurar muitos aspectos de um serviço eram usando um comportamento de serviço nomeado no aplicativo do serviço (ou subdiretório) do arquivo Web.config. No .NET Framework 4.0, os novos modelos promovem o uso de comportamentos sem nome pelos quais um serviço herda uma configuração padrão. Para obter mais informações, consulte “Configurando os padrões para um serviço a ser herdado” posteriormente nesta sessão.
As ferramentas de configuração do AppFabric modificam os seguintes comportamentos de serviço:
sqlWorkflowInstanceStore (persistência)
etwTracking (monitoramento)
serviceThrottling (desempenho)
serviceCredentials/serviceCertificate (segurança)
workflowIdle
workflowUnhandledException
workflowInstanceManagement
Configurando os padrões para um serviço a ser herdado
Usar um comportamento de serviço nomeado no aplicativo do arquivo Web.config não é a única maneira segura de fazê-lo.. Um serviço também pode herdar as definições de configuração padrão de arquivos Web.config para o servidor, site, aplicativo e subdiretório ao qual o serviço pertence. Algumas definições de configuração para o serviço com base em WCF- e WF- são definidos dentro de um comportamento de serviços.
Usando comportamentos sem nome
Se um comportamento de serviço nomeado existe, e o atributo do serviço behaviorConfiguration aponta para ele, os serviços usarão as configurações no comportamento nomeado. Ele também herdará as configurações de qualquer outro comportamento nomeado com o mesmo nome nos níveis acima. Ele não usará as configurações do comportamento de serviço padrão definidas nos arquivos subdiretório, aplicativo, site e servidor que se aplicam ao serviço. Você pode, contudo, alterar a marca <serviço> no arquivo Web.config do aplicativo para que o serviço herde os padrões. Você o fará definindo o comportamento de serviço sem nome no arquivo Web.config para um ou mais níveis e especificando que o seu serviço usa comportamento sem nome. O serviço usará o comportamento sem nome quando o nome do atributo behaviorConfiguration do elemento de serviço for definido como uma sequencia de caracteres vazia, conforme mostrado no código a seguir:
<services>
<service name=”TutorialService” behaviorConfiguration=””
<endpoint address=”” binding=”wsHttpBinding” contract=”IService” />
</service>
</services>
Deixar de fora o atributo behaviorConfiguration, conforme mostrado no código a seguir, proporciona o mesmo efeito. Acima, o comportamento sem nome é explicitamente usado, enquanto embaixo, é implícito.
<services>
<service name=”TutorialService”
<endpoint address=”” binding=”wsHttpBinding” contract=”IService” />
</service>
</services>
O efeito do elemento behaviorConfiguration é que o serviço vai herdar suas configurações para um ou mais comportamentos sem nome definidos no elemento serviceBehavior. A seguir, está o elemento serviceBehavior sem nome definido por padrão no nível do servidor. Esta configuração padrão para o servidor (conforme criada pela instalação do AppFabric) habilita o rastreamento de serviço, persistência de Fluxo de Trabalho e gerenciamento de instância de Fluxo de Trabalho.
<behaviors>
<serviceBehaviors>
<behavior name=””>
<workflowIdle timeToUnload="00:01:00" timeToPersist="infinite" />
<workflowInstanceManagement authorizedWindowsGroup=”AS_Administrators" />
<etwTracking profileName="HealthMonitoring Tracking Profile" />
</behavior>
</serviceBehaviors>
</behaviors>
Um comportamento sem nome pode ser definido em um arquivo Web.config em qualquer nível de hierarquia. Se os comportamentos sem nome forem definidos em mais de um nível que contenha o serviço, as configurações para o serviço consistirão das configurações mescladas de cada comportamento sem nome definido nesta hierarquia. Se dois ou mais comportamentos sem nome em uma hierarquia de serviço contém as definições de conflito, então as configurações no nível mais baixo ou mais baixo ainda deve ser utilizada. Este processo de agregar definições de configurações para um serviço de de múltiplos comportamentos sem nome conhecido como mescla de comportamentos .
Remover e desmarcar também podem ser usados na seção comportamento nos arquivos do Web.config. Remover marca, remove uma configuração para o comportamento sem nome que o tenha. Desmarcar a marca remove todos os comportamentos para um serviço.
Todos os serviços que possuírem behaviorConfiguration definido como uma sequência de caracteres vazia herdará os valores de configuração padrão dos comportamentos sem nome definidos na hierarquia. Pode haver somente um comportamento sem nome em um arquivo Web.config para um nível.
Um comportamento sem nome é usado implicitamente (com o atributo behaviorConfiguration deixado de fora) no caso de serviços (também conhecidos como “sem guia”). Um serviço sem marca é aquele que não é declarado no arquivo Web.config. Ele não possui um nó de serviço associado no arquivo Web.config. Por padrão, os novos tipos de projetos no Visual Studio 10 criam serviços sem marcas. Quando o tempo de execução encontra um serviço sem nome, ele automaticamente aplica os valores padrão mesclados a partir dos comportamentos sem nome para o serviço. Observe que você não pode modificar os pontos de extremidade de um serviço sem nome nas extensões do Gerenciador IIS; para isso, você precisa adicionar um elemento de serviço nomeado no arquivo Web.config .
Enquanto algumas configurações padrão para os serviços com base em WCF- e WF- são definidos em um comportamento de serviço sem nome, outros são definidos fora. Por exemplo, para sequências de caracteres ou coleções, um serviço herdará os valores de configuração de todos os arquivos de configuração na hierarquia.
Configurando padrões no Gerenciador IIS
Você pode configurar um aplicativo diretamente nas extensões do AppFabric para a interface do usuário do Gerenciador do IIS. Ao fazê-lo, o AppFabric define o comportamento de serviço nomeado nos arquivos Web.config aplicáveis (normalmente no nível do aplicativo). Você pode usar também o gerenciador IIS para alterar as configurações de serviço para usar os padrões do subdiretório, aplicativo, site e níveis de servidor, em vez de configurar diretamente o serviço. Quando você faz isso, os comportamentos sem nome do arquivo Web.config são alterados. O AppFabric executa a mesclagem de comportamento para criar um conjunto completo de parâmetros de configuração do aplicativo.
Se a mesma configuração for definida adequadamente para um valor diferente em dois ou mais arquivos Web.config, o AppFabric usará o valor inferior ou do nível mais baixo. Os campos da caixa de diálogo Configurar Serviço para o serviço são preenchidas a partir de comportamentos sem nome que se aplicam aos arquivos Web.config. Você pode alterar esses valores na interface do usuário de configuração no nível do serviço alterando assim o comportamento sem nome para o aplicativo apropriado. Ou você pode alterar os valores padrão no subdiretório, site ou servidor. Se alterar as configurações padrão no comportamento sem nome em um nível superior depois da criação do comportamento sem nome do aplicativo, a alteração para um comportamento sem nome de nível superior será propagado por todos os níveis de serviço a menos que seja sobrescrito no nível mais inferior.
Para definir as configurações padrão para o aplicativo, subdiretório, site ou servidor no Gerenciador IIS, selecione o nível no painel Conexões e clique em Configurar no painel de Ação em Gerenciar os Serviços WCF e WF. Você também pode clicar com o botão direito no painel Conexão, aportar para Gerenciar os Serviços WCF e WF e clique em Configurar. Isso exibe a caixa de diálogo Configuração para o nível. Se não houver um arquivo Web.config para um nível quando você alterar as configurações padrão para o nível na interface do usuário, o AppFabric criará um.
Na extensão AppFabric para o Gerenciador IIS Manager, ao configurar um serviço, você não seleciona a configuração do comportamento nomeado a ser usada. Você insere valores ou cria sessões na caixa de diálogo Configurar Serviço para o serviço. O AppFabric edita o arquivo Web.config. Você também pode usar os cmdlets do Windows PowerShell para o AppFabric para definir muitas configurações de comportamento.
Usando marcas de localização
O AppFabric dá suporte às operações de leitura em marcas de localização nos arquivos Web.config. Uma marca de localização é uma outra maneira de definir a configuração de um serviço, em vez de usar um comportamento nomeado ou definindo os comportamentos padrão usando o comportamento do serviço sem nome ou serviços sem marcas. Uma marca de localização é um elemento incorporado em um arquivo Web.config que se aplica as definições de configuração para uma entidade que a identifica especialmente. Uma marca de localização contém uma ou mais definições de configuração. Ela também contém um caminho especificando a entidade nas quais as propriedades de configuração devem ser aplicadas. Diferente do comportamento de serviço nomeado (que deve estar no nó <serviços> da aplicação aplicável no arquivo Web.config), uma marca de localização pode ser inserida em qualquer arquivo Web.config. Diferente do comportamento sem nome, a marca de localização não necessita do elemento sem nome behaviorConfiguration no nó <serviço> no arquivo Web.config para torná-lo aplicável.
A seguir, um exemplo de uma marca de localização em um site Web.config que aplica a definição de localização para um serviço s1 em um aplicativo app1:
<location path=”app1/s1.svc” overrideMode=”Allow”>
<defaultDocument enabled=”true”>
<files>
<add value=”Developer.htm” />
</files>
</defaultDocument>
</location>
Se não for declarado um caminho, então o caminho do nível onde a marca de localização foi definida e abaixo de todos os caminhos filhos (o equivalente a especificar um ponto (.)). Fazendo isto no applicationHost.config resultará na especificação de configuração em um nível global. Se o elementooverrideMode na marca de localização estiver definido como “permitir”, o conjunto de configurações na marca de localização pode ser editado e sobrescrito nos níveis mais inferiores da hierarquia. Se o elemento overrideMode não estiver definido e existir mais de uma marca de localização, especificando os valores diferentes para a mesma definição de configuração no mesmo serviço, será aplicado um conjunto de regras de priorização para determinar quais configurações usar.
Uma definição de configuração aplicada a um serviço a partir de uma marca de local não pode ser alterada seja nas extensões para a interface do usuário do Gerenciador IIS ou um cmdlet de configuração do AppFabric. O conteúdo de um marcador de localização de um marcador é somente leitura, tanto para a interface do usuário como para o cmdlet. Se tentar alterar a marca de localização usando o Gerenciados IIS ou cmdlet, a ação retornara um erro. Para alterar uma configuração aplicada por uma guia de localização, altere manualmente a marca de localização no arquico Web.config.
Reciclagem
A qualquer momento se você clicar em Aplicar ou OK na caixa de diálogo Configurar Serviço no Gerenciador IIS, alterando um arquivo Web.config reciclará o aplicativo, o sistema reciclará o domínio associado ao aplicativo. A qualquer momento quando você clicar em Aplicar ou OK para estabelecer as configurações padrão no subdiretório, aplicativo, site ou servidor, alteração no endereço de correspondência no arquivo Web.config, a aplicação de domínios para todos os serviços no escopo, serão reciclados. Recomendamos que você minimize o número de processos de reconfiguração a serem feitos, especialmente nos níveis mais altos, para diminuir os custos de reciclagem. Ao configurar os padrões, você deve proceder da seguinte maneira:: configurar os padrões do servidor e do site (em qualquer ordem), importar seus aplicativos e configurar os aplicativos e seus serviços contidos. A razão para esta ordem é que os padrões de configuração podem causar a reciclagem de toda a árvore. Se possível, execute as etapas de configuração antes que qualquer aplicativo o faça para evitar o custo de aplicativos de reciclagem.
2011-12-05