検証 <validation>

  • 概要
  • 互換性
  • セットアップ
  • 方法
  • 構成
  • サンプル コード

概要

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

validateIntegratedModeConfiguration 属性が true に設定されており、次のいずれかが当てはまる場合、IIS は移行エラー メッセージを生成します。

  • アプリケーションの Web.config ファイル内で <httpModules> セクションが定義されている。

    IIS 7.0 統合モードでは、ASP.NET モジュールは、<system.webServer> 下の統合された <modules> セクションで、ネイティブ モジュールと共に指定されます。

  • アプリケーションの Web.config ファイル内で <httpHandlers> セクションが定義されている。

    IIS 7.0 統合モードでは、ASP.NET ハンドラー マッピングは、<system.webServer> 内の統合された <handlers> セクションで指定されます。<handlers> セクションは、ASP.NET 1.0 のハンドラー マッピングのセットアップで必要であった ASP.NET の <httpHandlers> と IIS スクリプト プロセッサー マッピングの構成に代わるものです。

  • アプリケーションの Web.config ファイルで <identity impersonate="true" /> が指定されている。

    IIS 7.0 統合モードでは、一部の初期の要求処理段階では、クライアントの偽装は使用できません。そのため、IIS は移行エラー メッセージを生成します。ASP.NET Web アプリケーションでクライアント証明書を偽装している場合 (イントラネットでは一般的なシナリオ)、validateIntegratedModeConfiguration 属性を false に設定できます。

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

互換性

  IIS 7.0 IIS 6.0
説明 <validation> は IIS 7.0 で新たに導入された要素です。 なし

セットアップ

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

方法

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

構成

属性

属性 説明
validateIntegratedModeConfiguration オプションの Boolean 属性。

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

既定値は true です。

子要素

なし。

構成サンプル

次の構成サンプルでは、検証を有効にします。 : この構成サンプルは Web.config ファイルの一部を書き出したものです。よって、Web サイト内のどのフォルダー レベルでも使用できます。

<configuration>

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

サンプル コード

次のコード サンプルは、Default Web Site で検証を有効にします。

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