驗證驗證 <>
概觀
元素 <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()