Validação <validation>

Visão geral

O elemento <validation> configura o IIS (Serviços de Informações da Internet) 7 para detectar se um aplicativo ASP.NET configurado para ser executado no modo .NET clássico precisa ser alterado para funcionar corretamente no modo Integrado.

O IIS gerará uma mensagem de erro de migração se o atributo validateIntegratedModeConfiguration estiver definido como true e uma das seguintes opções também for verdadeira:

  • Seu aplicativo define uma seção <httpModules> em seu arquivo Web.config.

    No modo integrado do IIS 7, os módulos do ASP.NET são especificados com módulos nativos em uma seção unificada <modules> em <system.webServer>.

  • Seu aplicativo define uma seção <httpHandlers> em seu arquivo Web.config.

    No modo integrado do IIS 7, os mapeamentos do manipulador de ASP.NET são especificados em uma seção unificada de <manipuladores> dentro de <system.webServer>. A seção <manipuladores> substitui as configurações de mapeamento do processador de script do IIS e <httpHandlers> do ASP.NET, que eram necessárias para configurar um mapeamento de manipulador ASP.NET 1.0.

  • O arquivo Web.config do aplicativo especifica <identity impersonate="true" />.

    No Modo Integrado do IIS 7, a representação do cliente não está disponível em alguns estágios iniciais do processamento de solicitações. Portanto, o IIS gerará a mensagem de erro de migração. Se o aplicativo Web ASP.NET representar credenciais de cliente (mais comuns em cenários de intranet), convém definir o atributo validateIntegratedModeConfiguration como false.

Observação

Se você migrar sua configuração manualmente ou não migrar sua configuração, mas quiser que o IIS permaneça no modo Integrado (o que não é aconselhável), poderá desabilitar mensagens de erro de migração definindo o atributo validateIntegratedModeConfiguration como false. Como o IIS não fornecerá mais avisos para configurações sem suporte quando validateIntegratedModeConfiguration for false, verifique se o aplicativo funciona corretamente no modo Integrado antes de definir essa configuração.

Compatibilidade

Versão Observações
IIS 10.0 O elemento <validation> não foi modificado no IIS 10.0.
IIS 8.5 O elemento <validation> não foi modificado no IIS 8.5.
IIS 8.0 O elemento <validation> não foi modificado no IIS 8.0.
IIS 7.5 O elemento <validation> não foi modificado no IIS 7.5.
IIS 7.0 O elemento <validation> foi introduzido no IIS 7.0.
IIS 6,0 N/D

Instalação

O elemento <validation> está incluído na instalação padrão do IIS 7.

Instruções

Não há nenhuma interface de usuário para adicionar validação para o IIS 7. Para obter exemplos de como adicionar validação programaticamente, consulte a seção Exemplos de Código deste documento.

Configuração

Atributos

Atributo Descrição
validateIntegratedModeConfiguration Atributo booliano opcional.

Especifica se a validação de configuração está habilitada quando executada no modo Integrado. As seções <system.Web/httpHandlers> e <system.Web/httpModules>, bem como a representação, são verificadas durante esse processo.

O valor padrão é true.

Elementos filho

Nenhum.

Exemplo de configuração

O exemplo de configuração a seguir habilita a validação. > [!OBSERVAÇÃO]

Esse trecho é de um arquivo Web.config, portanto, esse exemplo de configuração pode ser usado em qualquer nível de pasta em um site.

<configuration>
   <system.webServer>
      <validation validateIntegratedModeConfiguration="true" />
   </system.webServer>
</configuration>

Exemplo de código

Os exemplos de código a seguir habilitam a validação para o site padrão.

AppCmd.exe

appcmd.exe set config "Default Web Site" -section:system.webServer/validation /validateIntegratedModeConfiguration:"True"

C#

using System;
using System.Text;
using Microsoft.Web.Administration;

internal static class Sample
{
   private static void Main()
   {
      using(ServerManager serverManager = new ServerManager())
      { 
         Configuration config = serverManager.GetWebConfiguration("Default Web Site");

         ConfigurationSection validationSection = config.GetSection("system.webServer/validation");
         validationSection["validateIntegratedModeConfiguration"] = true;

         serverManager.CommitChanges();
      }
   }
}

VB.NET

Imports System
Imports System.Text
Imports Microsoft.Web.Administration

Module Sample

   Sub Main()
      Dim serverManager As ServerManager = New ServerManager
      Dim config As Configuration = serverManager.GetWebConfiguration("Default Web Site")

      Dim validationSection As ConfigurationSection = config.GetSection("system.webServer/validation")
      validationSection("validateIntegratedModeConfiguration") = True

      serverManager.CommitChanges()
   End Sub

End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Default Web Site";

var validationSection = adminManager.GetAdminSection("system.webServer/validation", "MACHINE/WEBROOT/APPHOST/Default Web Site");
validationSection.Properties.Item("validateIntegratedModeConfiguration").Value = true;

adminManager.CommitChanges();

VBScript

Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Default Web Site"

Set validationSection = adminManager.GetAdminSection("system.webServer/validation", "MACHINE/WEBROOT/APPHOST/Default Web Site")
validationSection.Properties.Item("validateIntegratedModeConfiguration").Value = True

adminManager.CommitChanges()