検証 <validation>

概要

<validation> 要素は、クラシック .NET モードで実行するように設定された ASP.NET アプリケーションが、統合モードで正しく機能するには変更する必要があるかどうかを検出するように、インターネット インフォメーション サービス (IIS) 7 を構成します。

validateIntegratedModeConfiguration 属性が true に設定され、次のいずれかが true の場合、IIS によって移行エラー メッセージが生成されます。

  • アプリケーションは、その Web.config ファイル内の <httpModules> セクションを定義します。

    IIS 7 統合モードでは、ASP.NET モジュールは、<system.webServer> の下にある統合 <modules> セクションのネイティブ モジュールを使用して指定されます。

  • アプリケーションは、その Web.config ファイル内の <httpHandlers> セクションを定義します。

    IIS 7 統合モードでは、ASP.NET ハンドラー マッピングは、<system.webServer> 内にある統合 <handlers> セクションで指定されます。 <handlers> セクションは、ASP.NET <httpHandlers> と IIS の両方のスクリプト プロセッサ マッピング構成を置き換えます。これらはどちらも、ASP.NET 1.0 ハンドラー マッピングを設定するために必要でした。

  • アプリケーションの Web.config ファイルが、<identity impersonate="true" /> を指定します。

    IIS 7 統合モードでは、一部の初期の要求処理ステージではクライアントの偽装を使用できません。 そのため、IIS によって移行エラー メッセージが生成されます。 ASP.NET Web アプリケーションがクライアント資格情報を偽装する場合 (イントラネット シナリオで最も一般的)、validateIntegratedModeConfiguration 属性を false に設定できます。

Note

構成を手動で移行する場合、または構成を移行せず IIS を統合モードのままにする場合 (推奨されません)、validateIntegratedModeConfiguration 属性を false に設定することで、移行エラー メッセージを無効にすることができます。 validateIntegratedModeConfigurationfalse の場合、IIS はサポートされていない構成に対して警告を提供しなくなっているため、この設定を行う前に、アプリケーションが統合モードで正しく動作することを確認してください。

互換性

バージョン メモ
IIS 10.0 <validation> 要素は、IIS 10.0 では変更されませんでした。
IIS 8.5 <validation> 要素は、IIS 8.5 では変更されませんでした。
IIS 8.0 <validation> 要素は IIS 8.0 では変更されませんでした。
IIS 7.5 <validation> 要素は、IIS 7.5 では変更されませんでした。
IIS 7.0 <validation> 要素が IIS 7.0 で導入されました。
IIS 6.0 該当なし

段取り

<validation> 要素は IIS 7 の既定のインストールに含まれています。

操作方法

IIS 7 の検証を追加するためのユーザー インターフェイスはありません。 検証をプログラムで追加する方法の例については、このドキュメントの「コード サンプル」セクションを参照してください。

構成

属性

属性 説明
validateIntegratedModeConfiguration 省略可能な Boolean 属性です。

統合モードで実行するときに、構成検証を有効にするかどうかを指定します。 このプロセス中に、<system.Web/httpHandlers> セクション、<system.Web/httpModules> セクション、偽装がチェックされます。

既定値は true です。

子要素

なし。

構成サンプル

次の構成サンプルでは、検証が有効になります。 > [メモ]

この抜粋は Web.config ファイルからのものであるため、この構成サンプルは、Web サイト内の任意のフォルダー レベルで使用できます。

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

サンプル コード

次のコード サンプルでは、既定の Web サイトの検証を有効にします。

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()