Movendo um aplicativo ASP.NET do IIS 6.0 para o IIS 7.0

Este tópico descreve como mover um aplicativo da Web do Serviços de Informações da Internet (IIS) 6.0 para IIS 7.0.Aplicativos da Web em IIS 7.0 podem ser configurados para usar modo clássico ou modo integrado.Modo clássico mantém compatibilidade com versões anteriores do IIS, usando uma extensão ISAPI para invocar o tempo de execução do ASP.NET.Essa opção geralmente requer alguma ou nenhuma modificação para aplicativos existentes.

Modo integrado IIS 7.0 é um pipeline de processamento de solicitação unificado que combina o pipeline de solicitação do ASP.NET com o pipeline de solicitação principal do IIS.O pipeline integrado oferece melhor desempenho, fornece modularidade para configuração e administração e adiciona flexibilidade para estender o IIS com módulos de código gerenciado.Por exemplo, você pode definir um módulo de código gerenciado na pasta App_Code da aplicativo da Web e registrá-lo para aplicar a todas as solicitações do IIS, que inclui solicitações para arquivos estáticos.

Usando IIS 7.0 Modo integrado pode exigir alterações secundárias do aplicativo Web. arquivo de configuração. Algumas alterações adicionais podem ser necessários se o aplicativo usar quaisquer módulos personalizados que implementam a IHttpModule interface.

Para obter uma visão geral do pipeline de processamento de solicitação no modo integrado do IIS 7.0, consulte Uma visão geral do Ciclo de Vida do Aplicativo ASP.NET para o IIS 7.0.Quando você usa IIS 7.0, você pode executar aplicativos no modo clássico e modo integrado lado a lado no mesmo servidor.Ambos os modos Clássico e Integrado oferecem suporte a .NET Framework versão 2,0 e versões posteriores.O .NET Framework versão 1.1 é suportado no modo clássico somente.Para obter mais informações sobre como atualizar de versões anteriores do IIS para IIS 7.0, consulte Atualizando aplicativos ASP.NET para o IIS 7.0: Diferenças entre modo integrado do IIS 7.0 e de modo clássico.

Observação:

Você pode usar as informações neste tópico para mover aplicativos Web do IIS 5.x para IIS 7.0. No entanto, alterações adicionais poderão ser necessárias, que não são discutidos aqui. Para obter mais informações, consulte: .

Este tópico contém as seções a seguir:

  • Arquivos Web.config no IIS 7.0

  • Movendo um aplicativo da Web para o modo clássico

  • Movendo um aplicativo da Web para o modo integrado

Arquivos Web.config no IIS 7.0

Quando você move um aplicativo Web ASP.NET para IIS 7.0 Modo integrado, você deve atualizar o arquivo Web.config. IIS 7.0 inclui alterações em como você pode administrar arquivos Web.config e os tipos de configurações que podem ser armazenados nos arquivos Web.config. As novas configurações estão em uma nova seção de configuração denominada system.webServer.

No IIS 6.0, o snap-in do MMC do ASP.NET fornece recursos de administração relacionadas ao IIS para configurar o ASP.NET.Para obter mais informações, consulte Demonstra Passo a passo: Configurando aplicativos ASP.NET no IIS 6.0 usando o MMC.

In IIS 7.0, a administração de aplicativos ASP.NET é integrada com mais de perto com administração do IIS e não há snap-in separado. Em vez disso, a configuração IIS e o ASP.NET é feita usando Gerenciador do IIS. Como as informações de configuração do IIS 7.0 são baseadas no sistema de configuração .NET Framework, o arquivo web.config para um aplicativo executado no IIS 7.0 contém definições de configuração de servidor Web e ASP.NET.Por exemplo, em um arquivo Web.config para um aplicativo ASP.NET em execução no IIS 7.0, você pode especificar o arquivo padrão para retornar quando um navegador não solicitar um arquivo específico.(No IIS 6.0 e versões anteriores do IIS, isso foi uma configuração que foi mantida na metabase do IIS.)

Editando arquivos Web.config

Você pode alterar o arquivo web.config para um aplicativo da Web que está sendo executado no IIS 7.0 das seguintes maneiras:

  • Editar o web.config arquivo diretamente, tanto usando Visual Studio quanto Visual Web Developer, ou usando um programa editor de texto.

  • Usar Gerenciador do IIS.Para obter mais informações, consulte Serviços de Informações da Internet (Serviços de Informações da Internet) Manager.

  • Usar a Ferramenta de Administração de Site de Web do ASP.NET.Para obter mais informações, consulte Ferramenta de Admnistração de Web Site ASP.NET.

    Observação:

    As alterações feitas na Ferramenta de Administração de Site não afetam elementos de configuração filho no elemento system.webServer.

  • Usar a ferramenta de linha de comando do IIS 7.0 (Appcmd.exe).Este utilitário permite que você especifique definições de configuração do IIS e definições de configuração de aplicativo da Web na linha de comando.Para obter mais informações, consulte IIS 7.0 ferramenta de linha de comando.

A seção system.webServer

A seção de configuração system.webServer no arquivo web.config especifica as configurações IIS 7.0 que são aplicadas ao aplicativo da Web.A seção system.WebServer é um filho do elemento Configuração.Para obter mais informações, consulte IIS 7.0: agrupar de seções (esquema de configurações do IIS) sistema.webServer.

Exemplos de configurações de servidor Web que você pode definir no grupo de configuração system.WebServer incluem o seguinte:

  • O documento padrão que o servidor Web retorna para um cliente quando solicitação não inclui um recurso específico (elemento defaultDocument).

  • The compression settings for responses (httpCompression element).

  • Custom headers (customHeaders element of the httpProtocol section).

  • Modules (modules element).

  • Handlers (handlers element).

Algumas configurações se aplicam somente para o modo integrado do IIS 7.0 e não se aplicam ao modo clássico.Por exemplo, se o aplicativo está sendo executado no modo clássico, quaisquer módulos código gerenciado e manipuladores especificadas na seção system.WebServer do arquivo web.config serão ignorados.Em vez disso, os módulos de código gerenciado e manipuladores devem ser definidos como nas versões anteriores do IIS, usando os elementos httpModules e httpHandlers da seção System.Web.

Para obter exemplos de como usar a seção de configuração system.webServer, consulte Como: Configurar a seção <sistema.webServer> para IIS 7.0.

Movendo um aplicativo da Web para o modo clássico

Normalmente, mover um aplicativo Web Web do IIS 6.0 para IIS 7.0 Modo clássico requer somente que você colocar o aplicativo Web em um pool de aplicativos que está sendo executado no modo clássico. Por exemplo, quando você instalar IIS 7.0 com , por padrão na Web, servidor está configurada para operar no modo integrado. Ele também é configurado para ser executado em Pool de aplicativos padrão, que é chamado DefaultAppPool.Para executar um aplicativo da Web no modo clássico, use o aplicativo Classic.NETAppPool ou crie um novo pool de aplicativos que é configurado para ser executado no modo clássico.Para obter mais informações sobre como criar um pool de aplicativos, consulte Criar um pool de aplicativos.

Quaisquer módulos personalizados que implementem a interface IHttpModule em um aplicativo executado no modo clássico são notificados apenas sobre solicitações de pipeline que são manipuladas pelo runtime do ASP.NET.Por exemplo, eles são notificados sobre solicitações para uma página .aspx.O ciclo de vida do aplicativo para o modo clássico é igual a ciclo de vida do ASP.NET em IIS 6.0.Para obter mais informações, consulte Ciclo de Vida do Aplicativo ASP.NET uma visão geral para o IIS 5.0 e 6.0.

Se um aplicativo executado no modo clássico contiver um manipulador que requer um mapa de script para manipular uma extensão personalizada no IIS, você deverá registrar o manipulador no grupo httpHandler e no grupo handler.Você mapeia a extensão de nome de arquivo personalizada para a extensão ISAPI do ASP.NET (aspnet_isapi.dll), especificando os atributos modules e scriptProcessor no elemento handler.Esses atributos especificam que o módulo que define o manipulador é uma extensão ISAPI, e eles especificam o caminho da extensão.É assim que IIS 7.0 no modo clássico fornece compatibilidade com versões anteriores do IIS.No entanto, se você executar o aplicativo no modo integrado, você deve remover os atributos modules e scriptProcessor.Para obter mais informações, consulte Como: Configurar uma extensão de manipulador HTTP no IIS.

Quando você move um aplicativo da Web do IIS 6.0 para o modo clássico, não é garantido trabalhar no modo Integrado sem alterações.Se você alterna um aplicativo de modo clássico para modo integrado (e altera quaisquer manipuladores e módulos personalizados), talvez você precise fazer alterações adicionais para que o aplicativo seja executado corretamente no modo integrado.A próxima seção este tópico explica como mover um aplicativo para o modo integrado do IIS 7.0.

Movendo um aplicativo da Web para o modo integrado

Aplicativos da Web que não possuem módulos personalizados ou manipuladores geralmente funcionam sem alterações no modo integrado do IIS 7.0.Aplicativos da Web que dependam de módulos personalizados ou manipuladores exigem as seguintes etapas para permitir que o aplicativo execute no modo Integrado:

Os módulos que implementem a interface IHttpModule são denominados módulos de código gerenciado porque eles são criados usando o .NET Framework.Módulos de código gerenciado podem ser registrados a nível do servidor ou a nível do aplicativo.Módulos de código nativo são DLLs (código não gerenciado) que estejam registrados apenas a nível do servidor.Principais recursos do ASP.NET, como estado de sessão e autenticação de formulários, são implementados como módulos gerenciados no modo integrado.

Quando você move um aplicativo do modo clássico para o integrado, você pode deixar módulos personalizados e registros do manipulador para o modo clássico, ou você pode removê-los.Se você não remover os registros httpModules e httpHandlers que são usados no modo clássico, você deve definir o atributo validateIntegratedModeConfiguration do elemento validation para false para evitar erros.Um elemento validation é um filho do elemento system.webServer.Para obter mais informações, consulte a seção “ desabilitando a mensagem de migração ” no Integração do ASP.NET com o IIS 7.0.

Migrando um arquivo Web.config para uso no modo integrado

Se houver um módulo ou manipulador definido no nível do aplicativo, o módulo ou manipulador não é invocado automaticamente.Isso inclui módulos ou manipuladores que são definidos em um conjunto de módulos (assembly) na pasta bin ou como código-fonte na pasta App_Code, e não são registrados definidos na seção system.webServer do arquivo web.config.A fim de fazer o módulo ou manipulador participar do pipeline de solicitação do modo integrado, você deve registrar o módulo ou manipulador usando um dos seguintes métodos:

Classes e propriedades para trabalhar com o modo integrado

Quando você trabalha com um aplicativo no modo integrado do IIS 7.0 e o .NET Framework versão 3.0 ou posterior, você pode usar as seguintes classes e membros que não estão disponíveis no modo clássico:

Consulte também

Conceitos

Executando Aplicativos da Web no Windows Vista com o IIS 7.0 e Visual Studio