驗證驗證 <>

概觀

元素 <validation> 會設定 Internet Information Services (IIS) 7,以偵測是否已設定為在傳統 .NET 模式中執行的 ASP.NET 應用程式必須變更,才能在整合模式中正確運作。

如果 validateIntegratedModeConfiguration 屬性設定為 true ,且下列其中一項也成立,IIS 會產生移轉錯誤訊息:

  • 您的應用程式在其Web.config檔案中定義區 <httpModules> 段。

    在 IIS 7 整合模式中,ASP.NET 模組是在system.webServer > 下的 <整合< 模組區段中以原生模組 >指定。

  • 您的應用程式在其Web.config檔案中定義區 <httpHandlers> 段。

    在 IIS 7 整合模式中,ASP.NET 處理常式對應是在system.webServer > 內的 <整合< 處理常式 >區段中指定。 < handlers >區段會取代 ASP.NET <httpHandlers> 和 IIS script-processor-mapping 組態,這兩者都是設定 ASP.NET 1.0 處理常式對應所需的組態。

  • 應用程式的Web.config檔案會 <identity impersonate="true" /> 指定 。

    在 IIS 7 整合模式中,某些早期要求處理階段不提供用戶端模擬。 因此,IIS 會產生移轉錯誤訊息。 如果您的 ASP.NET Web 應用程式模擬用戶端認證, (內部網路案例最常) ,您可能會想要將 validateIntegratedModeConfiguration 屬性設定為 false。

注意

如果您手動移轉設定,或未移轉設定,但您希望 IIS 保持整合模式 (不建議) ,您可以將 validateIntegratedModeConfiguration 屬性設定為 false來停用移轉錯誤訊息。 因為當 validateIntegratedModeConfiguration 為 false時,IIS 將不再提供不支援之組態的警告,因此在進行此設定之前,請確定您的應用程式在整合模式中正常運作。

相容性

版本 備註
IIS 10.0 未在 IIS 10.0 中修改專案 <validation> 。
IIS 8.5 未在 IIS 8.5 中修改專案 <validation> 。
IIS 8.0 未在 IIS 8.0 中修改專案 <validation> 。
IIS 7.5 未在 IIS 7.5 中修改專案 <validation> 。
IIS 7.0 元素 <validation> 是在 IIS 7.0 中引進。
IIS 6.0 N/A

安裝程式

元素 <validation> 包含在 IIS 7 的預設安裝中。

作法

沒有用於新增 IIS 7 驗證的使用者介面。 For examples of how to add validation programmatically, see the Code Samples section of this document.

組態

屬性

屬性 描述
validateIntegratedModeConfiguration 選擇性的 Boolean 屬性。

指定在整合模式中執行時,是否啟用組態驗證。 在此 <system.Web/httpHandlers> 程式期間會檢查 和 <system.Web/httpModules> 區段和模擬。

預設值是 true。

子元素

無。

組態範例

下列設定範例會啟用驗證。 > [!注意]

此摘錄來自Web.config檔案,因此此組態範例可用於網站內的任何資料夾層級。

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

範例程式碼

下列程式碼範例會啟用預設網站的驗證。

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