Compartilhar via


Visão geral sobre ASP.NET lado a lado

O .NET Framework permite-lhe instalar várias versões do Common Language Runtime no mesmo computador.Por padrão, quando o .NET Framework é instalado em um computador onde o runtime já estiver instalado, todos os aplicativos ASP.NET são atualizados automaticamente para usar essa versão do.NET Framework.Embora versões posteriores do .NET Framework sejam projetadas para serem compatíveis, convém configurar um aplicativo ASP.NET para usar uma versão específica do runtime.

Esse tópico contém:

  • Cenários

  • < sua tecnologia aqui > Recursos

  • Segundo plano

  • Exemplos de código

  • Referência de Classe

  • Recursos adicionais

  • O que há de novo

Cenários

Voltar ao topo

Recursos

Voltar ao topo

Segundo plano

Tradicionalmente, quando um componente ou aplicativo é atualizado em um computador, a versão mais antiga é removida e substituída pela versão mais recente.Se a nova versão não for compatível com a versão anterior, isso geralmente quebra outros aplicativos que usam o componente ou aplicativo.O Framework .NET fornece suporte para execução lado a lado (side-by-side), que permite várias versões de um módulo (assembly) ou aplicativo serem instaladas no mesmo computador simultaneamente.Como várias versões podem ser instaladas simultaneamente, aplicativos gerenciados podem selecionar qual versão usar, sem afetar outros aplicativos que usam uma versão diferente.

No ASP.NET, diz-se dos aplicativos que estão sendo executados lado a lado (side-by-side) quando eles são instalados no mesmo computador, mas usam diferentes versões do Framework .NET.Os tópicos a seguir descrevem o suporte lado a lado no ASP.NET e como configurar os aplicativos ASP.NET para execução lado a lado.

O .NET Framework permite-lhe instalar várias versões do Common Language Runtime no mesmo computador.Por padrão, quando o .NET Framework é instalado em um computador onde o runtime já estiver instalado, todos os aplicativos ASP.NET são atualizados automaticamente para usar essa versão do.NET Framework.As únicas exceções são aplicativos que estiverem vinculados a uma versão incompatível do runtime ou a uma versão posterior do runtime.(A compatibilidade é normalmente determinada pelo número de versão do .NET Framework.Diferenças de versão grandes são normalmente incompatíveis, enquanto atualizações secundárias e diferenças no número de versão de compilação são compatíveis.). Embora versões posteriores do .NET Framework sejam projetadas para serem compatíveis, convém configurar um aplicativo ASP.NET para usar uma versão específica do runtime.

Mapeamentos de Script para aplicativos ASP.NET

Quando várias versões do Framework .NET estão instaladas no mesmo computador, cada instalação tem sua própria versão da extensão ISAPI do ASP.NET (Aspnet_isapi.dll).A extensão ISAPI do ASP.NET determina qual versão do Framework .NET um aplicativo irá usar.Você pode configurar um aplicativo ASP.NET para usar qualquer extensão ISAPI do ASP.NET.Para especificar qual extensão ISAPI do ASP.NET a ser usada para um aplicativo ASP.NET, um mapeamento de script (às vezes chamado um mapeamento de aplicativos) é registrado no Serviços de Informações da Internet (IIS) para o aplicativo.

Um mapeamento de script associa uma extensão de nome de arquivo (such as .aspx) e um comando HTTP (como GET e POST) com a extensão ISAPI apropriada.Por exemplo, quando o IIS recebe uma solicitação para um arquivo .aspx, o aplicativo do mapa de script direciona o IIS para encaminhar o arquivo .aspx para a versão apropriada da extensão ISAPI do ASP.NET.O mapeamento de script de cada aplicativo ASP.NET é normalmente definido no console de gerenciamento do Serviços de Informações da Internet (IIS) e pode ser aplicado diretamente num aplicativo, ou ele pode ser herdado de um aplicativo pai.Por padrão, quando o Framework .NET é instalado, os mapeamentos de script de todos os aplicativos ASP.NET existentes são automaticamente atualizados para usar a nova extensão ISAPI do ASP.NET, a menos que o aplicativo use uma versão posterior ou uma versão incompatível.

Para tornar mais fácil a reconfiguração do mapa de script de um aplicativo ASP.NET, cada instalação do.NET Framework possui sua própria versão da ASP.NET IIS Registration tool (Aspnet_regiis.exe).Por padrão, essa ferramenta é instalada no seguinte diretório:

%system root%\Microsoft.NET\Framework\número de versão

Você pode usar essa ferramenta para mapear um aplicativo ASP.NET para a versão da extensão ISAPI do ASP.NET que coincide com a da ferramenta.

Observação:

Como o Aspnet_regiis.exe está associado com uma versão específica do Framework .NET, você deve usar a versão apropriada do Aspnet_regiis.exe para reconfigurar o mapeamento de script de um aplicativo ASP.NET.A ferramenta Aspnet_regiis.exe reconfigura o mapeamento de script de um aplicativo ASP.NET somente para a versão da extensão ISAPI do ASP.NET que coincide com a ferramenta.

A ferramenta também pode ser usada para exibir o status de todas as versões instaladas do ASP.NET, registrar a versão associada do ASP.NET, criar diretórios de scripts-cliente, e realizar outras operações de configuração.

Para obter mais informações sobre mapas de script e configuração do IIS, consulte Definindo mapeamentos de aplicativos no IIS 6.0 (IIS 6.0).Para mais informações sobre a atualização de mapeamentos de script de um aplicativo ASP.NET, consulte Ferramenta de registro ASP.NET IIS (Aspnet_regiis.exe).

Contadores de desempenho do ASP.NET

Os contadores de desempenho permitem que você monitore a operação do ASP.NET a partir do console de Desempenho do Windows.Cada versão do Framework .NET instala um conjunto separado de objetos contador de desempenho para monitorar os aplicativos ASP.NET e monitorar o ASP.NET como um todo.Esses objetos usam as convenções de nomenclatura "ASP.NET Apps v. X.X.XXXX.X " e "ASP.NET v. X.X.XXXX.X ", respectivamente, onde v. X.X.XXXX.X indica a versão do ASP.NET.

Além disso, o .NET estrutura também instala sistema e contadores de desempenho do aplicativo ASP.NET que se aplicam a quaisquer versões instaladas do ASP.NET.Embora esses contadores sejam válido para todas as versões do ASP.NET, eles sempre correspondem à última versão instalada.Se a versão mais recente do ASP.NET for desinstalada, esses contadores serão automaticamente reassociados com a versão mais recente restante do ASP.NET.

Serviço de estado ASP.NET

O serviço de estado ASP.NET pode ser usado para gerenciar estado de sessão em um computador.Todas as versões do ASP.NET instaladas no mesmo computador compartilham o serviço de estado que é instalado com a versão mais recente do ASP.NET.Esta versão é registrada com o nome do serviço de aspnet_state. Portanto, quando essa versão do ASP.NET é desinstalada, a versão mais recente restante do serviço no computador é registrada e usada em seu lugar.Para mais informações sobre o serviço de estado ASP.NET, consulte Modos de estado de sessão.

Servidor de estado ASP.NET SQL

O servidor de estado ASP.NET SQL é usado para gerenciar estado de sessão em SQL num computador.Todas as versões do ASP.NET instaladas no mesmo computador compartilham o servidor de estado SQL que é instalado com a versão mais recente do ASP.NET.Quando esta versão do ASP.NET é desinstalada, a versão restante no computador, em seguida, é registrada e usada em seu lugar.Para mais informações sobre o serviço de estado ASP.NET, consulte Modos de estado de sessão.

Gerenciar diversas versões do ASP.NET

O .NET Framework habilita a você instalar várias versões do Common Language Runtime (CLR) no mesmo computador.Isso permite que um aplicativo ASP.NET use a versão que ele precisa sem afetar outros aplicativos.As seções a seguir descrevem como instalar, desinstalar, e redistribuir várias versões do ASP.NET no mesmo computador.

Instalando diversas versões do ASP.NET

Para adicionar uma versão do ASP.NET a um computador, execute o programa de instalação do pacote redistribuível do .NET Framework (Dotnetfx.exe) para a versão que você deseja instalar.Por padrão, todos os aplicativos ASP.NET existentes são automaticamente reconfigurados durante a instalação para usar a versão instalada do runtime se as seguintes condições forem atendidas:

  • A versão do .NET Framework que está sendo instalada é posterior à versão que é atualmente mapeada do aplicativo.

  • A versão do .NET Framework que está sendo instalada é compatível com a versão mapeada do aplicativo.Em geral, o número da versão determina a compatibilidade.A revisão secundária e alterações do número da compilação geralmente são compatíveis, enquanto não são os números principais da revisão.

    Observação:

    Embora os aplicativos ASP.NET são atualizados automaticamente para usar a versão do ASP.NET que está sendo instalada, se as condições anteriores forem atendidas, as configurações personalizadas no arquivo atual Machine.config não são transferidos para o arquivo Machine.config recém-instalado.Se seu aplicativo utiliza configurações personalizadas, certifique-se de ou atualizar manualmente o computador novo. arquivo de configuração ou use a ferramenta de inscrição de IIS do ASP.NET (Aspnet_regiis.exe) para remapear o aplicativo para a versão anterior do ASP.NET.

Para evitar o remapeamento automático de todos os aplicativos existentes para a versão do .NET Framework que está sendo instalada, use a opção da linha de comando /noaspupgrade com o programa de instalação Dotnetfx.exe.O comando a seguir mostra a sintaxe:

Dotnetfx.exe /c:"install /noaspupgrade"

Para mais informações sobre o pacote redistribuível do Framework .NET, consulte Redistribuindo o .NET Framework.

Observação:

Quando o .NET estrutura é instalado por meio do Adicionar ou remover programas item no painel de controle do Windows ou o Windows Configurar seu servidor assistente, o ASP.NET é ativado no console de bloqueio de segurança por padrão.Entretanto, se o .NET Framework for instalado pelo Microsoft Visual Studio, Windows Update, ou pelo pacote redistribuível do .NET Framework (Dotnetfx.exe), o ASP.NET será desativado por padrão.

Desinstalar uma versão do ASP.NET

Se você tiver várias versões do ASP.NET instalado em um computador, você poderá desinstalar uma versão específica.Você geralmente desinstala o ASP.NET por desinstalar o.NET Framework através do item Add or Remove Programs no painel de controle do Windows.Durante o processo de desinstalação, o programa setup chama a ferramenta de registro do ASP.NET no IIS (Aspnet_regiis.exe) com a opção -u (sinalizador de desinstalação).

Observação:

Se você desejar desinstalar somente uma versão do ASP.NET sem desinstalar o Framework .NET associado, você pode usar o Aspnet_regiis.exe diretamente.Cada instalação do Framework .NET contém uma versão associada da ferramenta.Para desinstalar somente ASP.NET, use o -u opção da versão da ferramenta associada à versão do ASP.NET que deseja desinstalar. Para obter mais informações, consulte o Ferramenta de registro ASP.NET IIS (Aspnet_regiis.exe).

A opção -u da ferramenta Aspnet_regiis.exe executa as seguintes ações:

  • Todos os aplicativos ASP.NET atualmente mapeados para a versão ASP.NET serão desinstalados e são remapeados para a última versão compatível do ASP.NET no computador.Se existir uma versão compatível, o mapa de script para o aplicativo será removido completamente.

    Cuidado:

    Remove os mapeamentos de script que fará com que IIS pare de servir páginas ASP.NET, como texto literal.Possivelmente isso pode expor código fonte para o cliente.

  • Se a versão do ASP.NET que você está desinstalando for a versão mais recente no momento, o serviço de estado ASP.NET é mapeado para a versão mais recente compatível.Se não existir uma versão compatível, o serviço de estado ASP.NET será desinstalado.(O serviço de estado ASP.NET, que é compartilhado entre todas as versões compatíveis do ASP.NET, é sempre mapeado para a versão mais recente instalada do ASP.NET.)

  • Os objetos de desempenho e os contadores de desempenho associados para a versão a ser desinstaladas são removidos.Os objetos de desempenho genérico e os contadores que se aplicam a todas as versões do ASP.NET e aqueles instalados para aplicativos do ASP.NET são direcionados para a última versão instalada restante no computador.

  • Se nenhuma instalação adicional do ASP.NET permanecer no computador, a conta do usuário ASPNET e as listas de controle de acesso associadas serão removidos.

Para obter informações sobre outros efeitos da instalação de várias versões do ASP.NET, consulte Visão geral sobre ASP.NET lado a lado.

Redistribuição de terceiros do .NET Framework

Aplicativos de terceiros podem empacotar e instalar o .NET Framework como parte de sua instalação sob uma licença de redistribuição especial.Isso permite que um aplicativo instale uma versão específica do .NET Framework que necessita para executar.O pacote redistribuível do .NET Framework (Dotnetfx.exe) é fornecido para um aplicativo ser implantado em tempo de execução.O script de instalação padrão do Dotnetfx.exe pode não atender às necessidades do seu aplicativo.Se assim, você pode as usar as opções descritas abaixo para instalar o .NET Framework como parte da instalação do aplicativo.

Para mais informações sobre o pacote redistribuível do Framework .NET, consulte Redistribuindo o .NET Framework.Para obter mais informações sobre o contrato de licença do usuário final (EULA) do pacote redistribuível, consulte Onde obter o pacote redistribuível do .NET Framework.

Desativar as atualizações automáticas do mapa de scripts

Por padrão, quando o .NET Framework é instalado em um computador com uma instalação existente, todos os aplicativos ASP.NET são atualizadas automaticamente para usar a nova versão do.NET Framework, a menos que os aplicativos estejam vinculados a uma versão incompatível do tempo de execução ou a uma versão posterior do tempo de execução.Normalmente, somente um administrador do sistema executa esse tipo de instalação.Quando o .NET Framework é instalado como parte da instalação do aplicativo, ele não deve forçar outros aplicativos no computador usar essa versão do tempo de execução.

sistema autônomo parte do script de instalação, Dotnetfx.exe normalmente chama a ferramenta de inscrição ASP.NET IIS (Aspnet_regiis.exe) com o -i opção para instalar o ASP.NET. Essa opção tenta atualizar os mapas de script de todos os aplicativos ASP.NET existentes.Para impedir que a instalação atualize automaticamente os mapeamentos de script de outros aplicativos no computador, use a opção /noaspnetupgrade ao emitir o comando Dotnetfx.exe.Essa opção faz com que o programa setup use a opção -ir do Aspnet_regiis.exe, que ignora as atualizações automáticas de mapeamento de script, documentação padrão e etapas de permutação MIME.O comando a seguir mostra a sintaxe:

Dotnetfx.exe /c:"install /noaspupgrade"

Atualizando os mapas de script manualmente

Às vezes é necessário configurar manualmente os mapas de script para um aplicativo.Se o aplicativo precisa do seu próprio diretório virtual para que os destinos da versão do Framework .NET sejam instalados, certifique-se que o programa setup do aplicativo também chame explicitamente o Aspnet_regiis.exe com a opção -s ou -sn para configurar os mapeamentos de script.

A seguir é mostrada uma linha de comando de exemplo que atualiza os mapeamentos de script para um aplicativo chamado SampleApp1.

Aspnet_regiis.exe -s W3SVC/1/ROOT/SampleApp1

Para obter mais informações, consulte o Ferramenta de registro ASP.NET IIS (Aspnet_regiis.exe).

Unificação de Assemblies no Framework .NET

Na execução lado a lado (side-by-side), é possível para um aplicativo ser composto de componentes são criados com diferentes versões do Framework .NET.Isso pode criar conflitos entre as dependências dos componentes.Por exemplo, suponha que um componente A foi criado usando o Framework .NET versão 1.1 e precisa usar a versão 1.1 do módulo System.Data.Componente B foi criado usando o .NET Framework versão 1.1 e precisa usar versão 2.0 do módulo System.Data.Se as versões dos módulos forem incompatíveis, mas forem carregadas ao mesmo tempo, isso poderá resultar em diferenças involuntárias de tipo ou outros problemas.

Como um aplicativo determina qual versão do .NET Framework a ser usada

Para permitir que versões diferentes do mesmo módulo (assembly) sejam usadas, quando um aplicativo usa componentes criados em versões diferentes do Framework .NET, a versão que está associada com um aplicativo determina qual versão dos módulos do Framework .NET será usada pelo aplicativo e por todos os seus componentes.No exemplo, se o aplicativo é mapeado para a versão 2.0 do Framework .NET, a versão 2.0 do módulo System.Data será carregada e compartilhada por todos os componentes usados no aplicativo.A referência do componente A à versão 1.1 do módulo System.Data é promovida em tempo de execução para uma referência versão 2.0.

Se você obter uma versão atualizada de um módulo específico, pode-se associar o aplicativo com o módulo independentemente da versão do Framework .NET à qual seu aplicativo está mapeado.Para fazer isso, você pode adicionar elementos <bindingRedirect> para os arquivos Machine.config ou Web.config.Esses elementos associam um aplicativo com um módulo atualizado que substitui um módulo existente para certos tipos de aplicativos.Por exemplo, se uma versão atualizada do System.Web.Service.dll for liberada no futuro que ofereça suporte ao SOAP versão 1.2, pode-se desejar que o aplicativo use essa versão em vez da versão que foi instalada com o Framework .NET originalmente.

Esse comportamento também pode ser sobreposto no arquivo de configuração do host ASP.NET (Aspnet.config).O ASP.NET usa esse arquivo para garantir que as versões do System.Web.dll e System.Web.RegularExpressions.dll sempre correspondam a versão associada a um aplicativo, independentemente de qualquer sobreposições especificadas no arquivo Web.config.

Às vezes, convém usar um componente que foi criado usando uma versão posterior do ASP.NET num aplicativo criado com uma versão anterior.A versão ISAPI do ASPNET associada a um aplicativo sempre determina a versão do ambiente de execução usado para um aplicativo.Se o aplicativo estiver configurado para usar a versão anterior do Framework .NET, o componente será redirecionado automaticamente em tempo de execução para usar essa versão do mesmo modo.

Ao usar um componente criado com uma versão posterior do Framework .NET num aplicativo construído sobre uma versão anterior, considere o seguinte:

  • Certifique-se de que o componente não usa nenhum recurso ou dependa de quaisquer comportamentos específicos da versão mais recente do Framework .NET.Talvez esses recursos não estejam disponíveis na versão anterior do ambiente de execução.

  • O ASP.NET usa mapeamentos de script no IIS para vincular um aplicativo a uma versão do ambiente de execução.Elementos de configuração <supportedRuntime> e <requiredRuntime> não se aplicam a aplicativos ASP.NET.

Como alternativa, se a versão do ambiente de execução usado para criar o componente é instalada no computador, você pode também reconfigurar o aplicativo para usar o versão posterior do ambiente de execução.Como as versões posteriores do Framework .NET em geral foram projetadas para serem compatíveis com versões anteriores, a maioria dos recursos de aplicativo devem funcionar sem muitas modificações.No entanto, você deve testar cuidadosamente para ter certeza que a execução do aplicativo em uma nova versão do Framework .NET não apresenta erros no aplicativo.

Voltar ao topo

Exemplos de código

Tópicos Como Fazer e Passo a passo

Voltar ao topo

Referência de Classe

Voltar ao topo

Recursos adicionais

Voltar ao topo

O que há de novo

Voltar ao topo

Consulte também

Referência

Voltar ao topo

Outros recursos

Execução Lado a Lado