1. 程式人生 > 程式設計 >C#如何控制IIS動態新增刪除網站詳解

C#如何控制IIS動態新增刪除網站詳解

我的目的是在Winform程式裡面,可以直接啟動一個HTTP服務端,給下游客戶連線使用。

查詢相關技術,有兩種方法:

1.使用C#動態新增網站應用到IIS中,借用IIS的管理能力來提供HTTP介面。本文即對此做說明

2.在Winform程式中實現Web伺服器邏輯,自己監聽和管理客戶端請求;

利用IIS7自帶類庫管理IIS現在變的更強大更方便,而完全可以不需要用DirecotryEntry這個類了(樂博網中很多.net管理iis6.0的文章都用到了DirecotryEntry這個類 ),Microsoft.Web.Administration.dll位於IIS的目錄(%WinDir%\\System32\\InetSrv)下,使用時需要引用,它基本上可以管理IIS7的各項配置。

這個類庫的主體結構如下:

這裡只舉幾個例子說明一下基本功能,更多功能請參考MSDN。

建立站點

string SiteName="樂博網"; //站點名稱
string BindArgs="*:80:"; //繫結引數,注意格式
string apl="http"; //型別
string path="e:\\樂博網"; //網站路徑
ServerManager sm = new ServerManager();
sm.Sites.Add(SiteName,apl,BindArgs,path);
sm.CommitChanges();

修改站點

Site site=sm.Sites["newsite"];
site.Name=SiteName;
site.Bindings[0].EndPoint.Port=9999;
site.Applications[0].VirtualDirectories[0].PhysicalPath=path;
sm.CommitChanges();

刪除站點

Site site=sm.Sites["樂博網"];
sm.Sites.Remove(site);
sm.CommitChanges();

站點操作

方法一:

#region CreateWebsite 新增網站

  public string CreateWebSite(string serverID,string serverComment,string defaultVrootPath,string HostName,string IP,string Port)
  {
   try
   {
    ManagementObject oW3SVC = new ManagementObject (_scope,new ManagementPath(@"IIsWebService='W3SVC'"),null);
    if (IsWebSiteExists (serverID))
    {
     return "Site Already Exists...";
    }

    ManagementBaseObject inputParameters = oW3SVC.GetMethodParameters ("CreateNewSite");
    ManagementBaseObject[] serverBinding = new ManagementBaseObject[1];

    serverBinding[0] = CreateServerBinding(HostName,IP,Port);

    inputParameters["ServerComment"] = serverComment;
    inputParameters["ServerBindings"] = serverBinding;
    inputParameters["PathOfRootVirtualDir"] = defaultVrootPath;
    inputParameters["ServerId"] = serverID;

    ManagementBaseObject outParameter = null;
    outParameter = oW3SVC.InvokeMethod("CreateNewSite",inputParameters,null);

    // 啟動網站
    string serverName = "W3SVC/" + serverID;
    ManagementObject webSite = new ManagementObject(_scope,new ManagementPath(@"IIsWebServer='" + serverName + "'"),null);
    webSite.InvokeMethod("Start",null);

    return (string)outParameter.Properties["ReturnValue"].Value;

   }
   catch (Exception ex)
   {
    return ex.Message;
   }

  }

  public ManagementObject CreateServerBinding(string HostName,string Port)
  {
   try
   {
    ManagementClass classBinding = new ManagementClass(_scope,new ManagementPath("ServerBinding"),null);

    ManagementObject serverBinding = classBinding.CreateInstance();

    serverBinding.Properties["Hostname"].Value = HostName;
    serverBinding.Properties["IP"].Value = IP;
    serverBinding.Properties["Port"].Value = Port;
    serverBinding.Put();

    return serverBinding;
   }
   catch
   {
    return null;
   }
  }
  
  #endregion

  #region 新增網站事件

  protected void AddWebsite_Click(object sender,EventArgs e)
  {
   IISManager iis = new IISManager();

   iis.Connect();

   string serverID = "5556";
   string serverComment = "Create Website";
   string defaultVrootPath = @"D:\web";
   string HostName = "World";
   string IP = "";
   string Port = "9898";

   ReturnMessage.Text = iis.CreateWebSite(serverID,serverComment,defaultVrootPath,HostName,Port);
  }

  #endregion

  #region DeleteSite 刪除站點

  public string DeleteSite(string serverID)
  {
   try
   {
    string serverName = "W3SVC/" + serverID;
    ManagementObject webSite = new ManagementObject(_scope,null);
    webSite.InvokeMethod("Stop",null);
    webSite.Delete();
    webSite = null;

    return "Delete the site succesfully!";
   }
   catch (Exception deleteEx)
   {
    return deleteEx.Message;
   }
  }

  #endregion

方法二:

using System;
using System.Collections.Generic;
using System.Text;
using System.DirectoryServices;
namespace WindowsApplication1
{
 class IISManager
 {
  public IISManager()
  {
  }
  public static string VirDirSchemaName = "IIsWebVirtualDir";
  private string _serverName;
  public string ServerName
  {
   get
   {
    return _serverName;
   }
   set
   {
    _serverName = value;
   }
  }

  /// <summary>  
  /// 建立網站或虛擬目錄 
  /// </summary>  
  /// <param name="WebSite">伺服器站點名稱(localhost)</param>  
  /// <param name="VDirName">虛擬目錄名稱</param>  
  /// <param name="Path">實際路徑</param>  
  /// <param name="RootDir">true=網站;false=虛擬目錄</param> 
  /// <param name="iAuth">設定目錄的安全性,0不允許匿名訪問,1為允許,2基本身份驗證,3允許匿名+基本身份驗證,4整合Windows驗證,5允許匿名+整合Windows驗證...更多請查閱MSDN</param>  
  /// <param name="webSiteNum">1</param>  
  /// <param name="serverName">一般為localhost</param> 
  /// <returns></returns> 
  public bool CreateWebSite(string WebSite,string VDirName,string Path,bool RootDir,int iAuth,int webSiteNum,string serverName)
  {
   try
   {
    System.DirectoryServices.DirectoryEntry IISSchema;
    System.DirectoryServices.DirectoryEntry IISAdmin;
    System.DirectoryServices.DirectoryEntry VDir;
    bool IISUnderNT;

    // 
    // 確定IIS版本 
    //   
    IISSchema = new System.DirectoryServices.DirectoryEntry("IIS://" + serverName + "/Schema/AppIsolated");
    if (IISSchema.Properties["Syntax"].Value.ToString().ToUpper() == "BOOLEAN")
     IISUnderNT = true;
    else
     IISUnderNT = false;
    IISSchema.Dispose();
    //   
    // Get the admin object   
    // 獲得管理許可權  
    //   
    IISAdmin = new System.DirectoryServices.DirectoryEntry("IIS://" + serverName + "/W3SVC/" + webSiteNum + "/Root");
    //   
    // If we're not creating a root directory   
    // 如果我們不能建立一個根目錄   
    //    
    if (!RootDir)
    {
     //    
     // If the virtual directory already exists then delete it    
     // 如果虛擬目錄已經存在則刪除  
     //
     foreach (System.DirectoryServices.DirectoryEntry v in IISAdmin.Children)
     {
      if (v.Name == VDirName)
      {
       // Delete the specified virtual directory if it already exists 
       try
       {
        IISAdmin.Invoke("Delete",new string[] { v.SchemaClassName,VDirName });
        IISAdmin.CommitChanges();
       }
       catch (Exception ex)
       {
        throw ex;
       }
      }
     }
    }
    //   
    // Create the virtual directory  
    // 建立一個虛擬目錄  
    //   
    if (!RootDir)
    {
     VDir = IISAdmin.Children.Add(VDirName,"IIsWebVirtualDir");
    }
    else
    {
     VDir = IISAdmin;
    }
    //   
    // Make it a web application  
    // 建立一個web應用   
    //
    if (IISUnderNT)
    {
     VDir.Invoke("AppCreate",false);
    }
    else
    {
     VDir.Invoke("AppCreate",true);
    }
    //   
    // Setup the VDir  
    // 安裝虛擬目錄  
    //AppFriendlyName,propertyName,bool chkRead,bool chkWrite,bool chkExecute,bool chkScript,true,false,true 
    VDir.Properties["AppFriendlyName"][0] = VDirName; //應用程式名稱 
    VDir.Properties["AccessRead"][0] = true; //設定讀取許可權 
    VDir.Properties["AccessExecute"][0] = false;
    VDir.Properties["AccessWrite"][0] = false;
    VDir.Properties["AccessScript"][0] = true; //執行許可權[純指令碼] 
    //VDir.Properties["AuthNTLM"][0] = chkAuth; 
    VDir.Properties["EnableDefaultDoc"][0] = true;
    VDir.Properties["EnableDirBrowsing"][0] = false;
    VDir.Properties["DefaultDoc"][0] = "Default.aspx,Index.aspx,Index.asp"; //設定預設文件,多值情況下中間用逗號分割 
    VDir.Properties["Path"][0] = Path;
    VDir.Properties["AuthFlags"][0] = iAuth;
    //  
    // NT doesn't support this property  
    // NT格式不支援這特性  
    //   
    if (!IISUnderNT)
    {
     VDir.Properties["AspEnableParentPaths"][0] = true;
    }
    // 
    // Set the changes  
    // 設定改變   
    //   
    VDir.CommitChanges();

    return true;
   }
   catch (Exception ex)
   {
    throw ex;
   }
  }
  /// <summary> 
  /// 獲取VDir支援的所有屬性 
  /// </summary> 
  /// <returns></returns> 
  public string GetVDirPropertyName()
  {
   //System.DirectoryServices.DirectoryEntry VDir; 
   const String constIISWebSiteRoot = "IIS://localhost/W3SVC/1/ROOT/iKaoo";
   DirectoryEntry root = new DirectoryEntry(constIISWebSiteRoot);
   string sOut = "";
   //下面的方法是得到所有屬性名稱的方法: 
   foreach (PropertyValueCollection pvc in root.Properties)
   {
    //Console.WriteLine(pvc.PropertyName); 
    sOut += pvc.PropertyName + ":" + pvc.Value.ToString() + "-----------";
   }
   return sOut;
  }
  /// <summary> 
  /// 建立虛擬目錄 
  /// </summary> 
  /// <param name="sDirName">虛擬目錄程式名稱</param> 
  /// <param name="sPath">實體路徑</param> 
  /// <param name="sDefaultDoc">黙認首頁,多個名稱用逗號分隔</param> 
  /// <param name="iAuthFlags">設定目錄的安全性,0不允許匿名訪問,1為允許,5允許匿名+整合Windows驗證...更多請查閱MSDN</param> 
  /// <param name="sWebSiteNumber">Win2K,2K3支援多個網站,本次操作哪個網站,黙認網站為1</param> 
  /// <returns></returns> 
  public bool CreateVDir(string sDirName,string sPath,string sDefaultDoc,int iAuthFlags,string sWebSiteNumber)
  {
   try
   {
    String sIISWebSiteRoot = "IIS://localhost/W3SVC/" + sWebSiteNumber + "/ROOT";
    DirectoryEntry root = new DirectoryEntry(sIISWebSiteRoot);
    foreach (System.DirectoryServices.DirectoryEntry v in root.Children)
    {
     if (v.Name == sDirName)
     {
      // Delete the specified virtual directory if it already exists 
      root.Invoke("Delete",sDirName });
      root.CommitChanges();
     }
    }
    DirectoryEntry tbEntry = root.Children.Add(sDirName,root.SchemaClassName);

    tbEntry.Properties["Path"][0] = sPath;
    tbEntry.Invoke("AppCreate",true);
    //tbEntry.Properties["AccessRead"][0] = true; 
    //tbEntry.Properties["ContentIndexed"][0] = true; 
    tbEntry.Properties["DefaultDoc"][0] = sDefaultDoc;
    tbEntry.Properties["AppFriendlyName"][0] = sDirName;
    //tbEntry.Properties["AccessScript"][0] = true; 
    //tbEntry.Properties["DontLog"][0] = true; 
    //tbEntry.Properties["AuthFlags"][0] = 0; 
    tbEntry.Properties["AuthFlags"][0] = iAuthFlags;
    tbEntry.CommitChanges();
    return true;
   }
   catch (Exception ex)
   {
    throw ex;
   }
  }

 }

}
呼叫DEMO:
private void button1_Click(object sender,EventArgs e)
  {
   if (new IISManager().CreateWebSite("localhost","Vtest","E:\\DOC",1,"localhost"))
    lbInfo.Text = "Create Vtest OK"; 
  }
  private void button2_Click(object sender,EventArgs e)
  {
   txtPN.Text = new IISManager().GetVDirPropertyName();
  }
  private void button3_Click(object sender,EventArgs e)
  {
   if (new IISManager().CreateVDir("iKaoo","index.aspx,Default.aspx","1"))
    lbInfo.Text = "Create iKaoo OK";
  }

同樣的方式,也可以對網站對屬性進行修改。

IIS的站點屬性(詳細內容,請查閱IIS幫助)

Read only properties of W3SVC/1/Root: // 只讀屬性

AppIsolated = 2 屬性指出應用程式是在程序內、程序外還是在程序池中執行。值 0 表示應用程式在程序內執行,值 1 表示程序外,值 2 表示程序池。

AppPackageID = 為事務提供 COM+ 應用程式識別符號 (ID)。此 ID 在由元件服務管理的所有事務中使用。

AppPackageName = 為事務提供 COM+ 應用程式名。

AppRoot = /LM/W3SVC/1/ROOT 包含到應用程式根目錄的配置資料庫路徑。

Caption = 提供物件的一段簡短文字描述(一行字串)。

Description = 提供物件的一段較長文字描述。

InstallDate = 表示安裝物件的時間。缺少值並不表示物件沒有安裝。

Name = W3SVC/1/ROOT 定義了用來識別物件的標籤。建立子類時,可以將 Name 屬性改寫為 Key 屬性。

Status = 表示物件當前狀態。各種可操作的和不可操作的狀態都可以被定義。可操作的狀態為“正常”、“已降級”和“預見故障”。“預見故障”表示一個元件可能執行正常但預計很快會出現故障。例如,啟用 SMART 的硬碟。還可指定不可操作的狀態。這些狀態為“錯誤”、“啟動”、“停止”和“服務”。後者(即“服務”)可用於磁碟映象過程、重新載入使用者許可權列表或其他管理作業。並不是所有這類作業都聯機;所以,被管理的元件不是“正常”狀態或處於任何其他狀態。

Read/Write properties of W3SVC/1/Root: // 可讀/可寫

AccessExecute = False 值 true 表示不論檔案型別是什麼,檔案或資料夾的內容都可以執行。

AccessFlags = 513 包含有用於配置檔案訪問許可權的標誌

AccessNoPhysicalDir = False

AccessNoRemoteExecute = False 值 true 表示拒絕遠端請求執行應用程式;如果將 AccessExecute 屬性設定為 true,只有來自 IIS 伺服器所在的相同計算機的請求才會成功。您不能將 AccessNoRemoteExecute 設定為 false 來啟用遠端請求,或將 AccessExecute 設定為 false 來禁止本地請求。

AccessNoRemoteRead = False 值 true 表示拒絕遠端請求檢視檔案;如果將 AccessRead 屬性設定為 true,只有來自 IIS 伺服器所在的相同計算機的請求才會成功。您不能將 AccessNoRemoteRead 設定為 false 來啟用遠端請求,或將 AccessRead 設定為 false 來禁止本地請求。

AccessNoRemoteScript = False 值 true 表示拒絕遠端請求檢視動態內容;如果將 AccessScript 屬性設定為 true,只有來自 IIS 伺服器所在的相同計算機的請求才會成功。您不能將 AccessNoRemoteScript 設定為 false 來啟用遠端請求,或將 AccessScript 設定為 false 來禁止本地請求。

AccessNoRemoteWrite = False 值 true 表示拒絕遠端請求建立或更改檔案;如果將 AccessWrite 屬性設定為 true,只有來自 IIS 伺服器所在的相同計算機的請求才會成功。您不能將 AccessNoRemoteWrite 設定為 false 來啟用遠端請求,或將 AccessWrite 設定為 false 來禁止本地請求。

AccessRead = True 值 true 表示可通過 Microsoft Internet Explorer 讀取檔案或資料夾的內容。

AccessScript = True 值 true 表示如果是指令碼檔案或靜態內容,則可以執行檔案或資料夾的內容。值 false 只允許提供靜態檔案,如 HTML 檔案。

AccessSource = False 值 true 表示如果設定了讀取或寫入許可權,則允許使用者訪問原始碼。原始碼包括 Microsoft? Active Server Pages (ASP) 應用程式中的指令碼。

AccessSSL = False 值 true 表示檔案訪問需要帶有或不帶有客戶端證書的 SSL 檔案許可權處理。

AccessSSL128 = False 值 true 表示檔案訪問需要至少 128 位金鑰、帶有或不帶有客戶端證書的 SSL 檔案許可權處理。

AccessSSLFlags = 0 預設值 0 表示未設定任何 SSL 許可權。

AccessSSLMapCert = False 值 true 表示 SSL 檔案許可權處理將客戶端證書對映到 Microsoft Windows? 作業系統的使用者帳戶上。要實現對映,必須將 AccessSSLNegotiateCert 屬性設定成 true。

AccessSSLNegotiateCert = False 值 true 表示 SSL 檔案訪問處理從客戶端請求證書。值 false 表示如果客戶端沒有證書,仍可繼續訪問。如果伺服器請求證書但證書不可用(即使也將 AccessSSLRequireCert 設成 true),某些版本的 Internet Explorer 將關閉連線。

AccessSSLRequireCert = False 值 true 表示 SSL 檔案訪問處理從客戶端請求證書。如果客戶端沒有提供證書,連線會關閉。當使用 AccessSSLRequireCert 時,必須將 AccessSSLNegotiateCert 設成 true。

AccessWrite = False 值 true 表示允許使用者將檔案及其相關屬性上載到伺服器上已啟用的目錄中,或者更改可寫檔案的內容。只有使用支援 HTTP 1.1 協議標準的 PUT 功能的瀏覽器,才能執行寫入操作。

AdminACLBin = 由 Microsoft? Exchange Server 使用

AnonymousPasswordSync = True 指出 IIS 是否應該為試圖訪問資源的匿名使用者處理使用者密碼。下表列出了該屬性行為的詳細說明:如果將 AnonymousPasswordSync 設定為 false,管理員必須手動設定匿名使用者密碼的 AnonymousUserPass 屬性;否則匿名訪問將無法正常工作。 如果將 AnonymousPasswordSync 設定為 true,將由 IIS 設定匿名使用者密碼。 如果將 AnonymousPasswordSync 設定為 true 並且配置資料庫屬性 AllowAnonymous 值為 false,則不允許任何使用者登入到 FTP 伺服器。

AnonymousUserName = IUSR_COMPUTERNAME 指定用來驗證匿名使用者的已註冊的本地使用者名稱。伺服器將每個伺服器操作與使用者名稱和密碼關聯起來。

AnonymousUserPass = XXXXXXXXXXXX 指定用來驗證匿名使用者的已註冊的本地使用者密碼。伺服器將每個伺服器操作與使用者名稱和密碼關聯起來。

AppAllowClientDebug = False 指定是否允許客戶端除錯。該屬性與應用於伺服器端除錯的 AppAllowDebugging 無關。

AppAllowDebugging = False 指定是否允許在伺服器上進行 ASP 除錯。該屬性與應用於客戶端除錯的 AppAllowClientDebug 屬性無關。

AppFriendlyName = 預設應用程式 軟體包或應用程式的使用者好記名稱

AppOopRecoverLimit = -1 程序外應用程式在出現故障後重新啟動的最大次數。伺服器不會響應超出該範圍的元件請求。該屬性不適用於程序內執行的應用程式或擴充套件。

AppPoolId = ASP.NET V2.0 應用程式在其中路由的應用程式池

AppWamClsid = 為應用程式的 Web 應用程式管理 (WAM) 介面提供類 ID

AspAllowOutOfProcComponents = True 在 IIS 4.0 中,AspAllowOutOfProcComponents 屬性指定是否允許 ASP 指令碼呼叫程序外元件,這些元件是在應用程式內啟動的可執行程式。在 IIS 5.0 中,該屬性已過時,並且屬性值將被忽略。但是,使用該屬性的指令碼仍然可以正常執行。

AspAllowSessionState = True 啟用 ASP 應用程式會話狀態持續性。如果將該值設定為 true,那麼伺服器將為每個連線建立 Session 物件,可訪問會話狀態,允許會話儲存,出現 Session_OnStart 和 Session_OnEnd 事件,並且傳送 ASPSessionID Cookie 到客戶端。如果將該值設定為 false,那麼不允許狀態訪問和儲存,事件將不進行處理,並且也不傳送 Cookie。

AspAppServiceFlags = 0 包含在 IIS 應用程式上啟用 COM+ 服務所必須要設定的標誌

AspBufferingLimit = 4194304 設定 ASP 緩衝區的最大大小。如果啟動了響應緩衝,該屬性將控制在進行重新整理前 ASP 頁面可以向響應緩衝區寫入的最大位元組數

AspBufferingOn = True ASP 應用程式的輸出是否需要緩衝

AspCalcLineNumber = True ASP 是否計算和儲存已執行程式碼的行號,以便在錯誤報告中提供

AspCodepage = 0 為應用程式指定預設的內碼表

AspDiskTemplateCacheDirectory = %windir%\system32\inetsrv\ASP Comp 目錄的名稱,該目錄是 ASP 在儲存器內的快取溢位後,用來將已編譯的 ASP 模板儲存到磁碟的目錄

AspEnableApplicationRestart = True 確定 ASP 應用程式能否自動重新啟動

AspEnableAspHtmlFallback = False 當由於請求佇列已滿而拒絕新的請求時,AspEnableAspHtmlFallback 屬性控制 ASP 的行為。將該屬性設定為 true,將導致傳送與請求的 .asp 檔名稱類似的 .htm 檔案(如果存在),而不是傳送 .asp 檔案。.htm 檔案的命名約定是 .asp 檔名之後附加一個 _asp。例如,.asp 檔案是 hello.asp,那麼 .htm 檔案應該是 hello_asp.htm。

AspEnableChunkedEncoding = True 指定是否為全球資訊網釋出服務(WWW 服務)啟動 HTTP 1.1 chunked 傳輸編碼

AspEnableParentPaths = False 頁面是否允許當前目錄的相對路徑(使用 ..\ 表示法)。

AspEnableSxs = False 值 true 將啟動 COM+ 並排集合,該程式集允許 ASP 應用程式指定要使用哪個版本的系統 DLL 或傳統 COM 元件,例如 MDAC、MFS、MSVCRT、MSXML 等等。

AspEnableTracker = False 值 true 將啟動 COM+ 跟蹤器,管理員或開發人員可用其來除錯 ASP 應用程式。

AspEnableTypelibCache = True 是否在伺服器上快取型別庫

AspErrorsToNTLog = False 是否將 IIS 指令碼錯誤寫入到 Windows 事件日誌中

AspExceptionCatchEnable = True 頁面是否捕獲元件產生的異常。如果設定為 false (或者禁用),那麼 Microsoft 指令碼除錯程式工具將不捕捉所除錯的元件發生的異常。

AspExecuteInMTA = 0 ASP 能夠在一個多執行緒單元 (MTA) 中執行其全部執行緒。如果 COM 元件主要是自由執行緒或雙執行緒元件,則將 ASP 執行緒作為 MTA 執行可顯著改善效能。預設情況下,AspExecuteInMTA 屬性設定為 0,這意味著 ASP 不在 MTA 中執行。在應用程式級別上將該屬性設定為 1 可以使 ASP 在 MTA 中執行。

AspKeepSessionIDSecure = 0 啟用 AspKeepSessionIDSecure 屬性後,它可以確保將 SessionID 作為安全 Cookie 傳送(如果已在安全通道上分配的話)。

AspLCID = 2048 用程式指定預設的區域設定識別符號 (LCID)。

AspLogErrorRequests = True 控制 Web 伺服器是否將失敗的客戶請求寫入到 Windows 事件日誌檔案中

AspMaxDiskTemplateCacheFiles = 2000 指定儲存已編譯 ASP 模板的最大數量。儲存已編譯模板的目錄由 AspDiskTemplateCacheDirectory 屬性配置。

AspMaxRequestEntityAllowed = 204800 指定一個 ASP 請求的實體正文中允許的最多位元組數。

AspPartitionID = COM+ 分割槽用於將 Web 應用程式隔離到其各自的 COM+ 分割槽。COM+ 分割槽儲存不同的自定義 COM 元件的版本。將 AspPartitionID 屬性設定為 COM+ 分割槽的全域性唯一識別符號 (GUID)。同時,設定 AspAppServiceFlags 配置資料庫屬性的 AspUsePartition 標誌。在應用程式級別設定這兩個屬性

AspProcessorThreadMax = 25 指定 IIS 可建立的每個處理器的最大工作執行緒數

AspQueueConnectionTestTime = 3 IIS 將所有的 ASP 請求放置到佇列中。如果請求在佇列中等待的時間比 AspQueueConnectionTestTime 屬性指定的時間(以秒為單位)長,則 ASP 將在執行請求前檢查確定客戶端是否仍是連線的。如果客戶端已斷開連線,則不處理該請求並且從佇列中刪除該請求。

AspQueueTimeout = -1 允許 ASP 指令碼請求在佇列中等待的時間(以秒為單位)。無窮大表示為 -1。

AspRequestQueueMax = 3000 允許進入佇列的併發 ASP 請求的最大數目。在佇列佔滿時,任何試圖請求 ASP 檔案的客戶端瀏覽器都將收到 HTTP 500“伺服器太忙”的錯誤。

AspRunOnEndAnonymously = True 指定了 SessionOnEnd 和 ApplicationOnEnd 全域性 ASP 函式是否應該作為匿名使用者執行

AspScriptEngineCacheMax = 250 頁面將在記憶體中保持快取的指令碼引擎的最大數目

AspScriptErrorMessage = 處理 URL 時伺服器出錯。請與系統管理員聯絡。 特殊除錯錯誤沒有被髮送到客戶端時(如果將 AspScriptErrorSentToBrowser 設定成 false)將傳送給瀏覽器的錯誤訊息

AspScriptErrorSentToBrowser = True Web 伺服器是否將除錯細節(檔名、錯誤、行號、描述)寫到客戶端瀏覽器,並且記錄到 Windows 事件日誌中

AspScriptFileCacheSize = 500 要快取的預編譯指令碼檔案數。如果設定為 0,則不快取任何指令碼檔案

AspScriptLanguage = VBScript 執行在 Web 伺服器上的所有 ASP 應用程式的預設指令碼語言

AspScriptTimeout = 90 AspScriptTimeout 屬性指定了在終止指令碼和將事件寫入 Windows 事件日誌之前,ASP 頁面允許的指令碼執行時間的預設值(以秒為單位)。

AspSessionMax = -1 IIS 允許的最大併發會話數。當達到該限制時,如果客戶端試圖與 IIS 建立新連線,則客戶端將接收到錯誤資訊(HTTP 500“伺服器太忙”)。無窮大表示為 -1。

AspSessionTimeout = 20 完成最後的與 Session 物件相關的請求後,保留該物件的時間(以分鐘為單位)。

AspSxsName = 啟動並行 (SxS) 程式集。並行 (SxS) 程式集允許 ASP 應用程式指定要使用哪個版本的系統 DLL 或傳統 COM 元件,例如 MDAC、MFS、MSVCRT、MSXML 等。

AspTrackThreadingModel = False IIS 是否檢查應用程式建立的任意元件的執行緒模組。

AspUsePartition = False 值 true 將啟動 COM+ 分割槽,可用其將 Web 應用程式隔離到各自的 COM+ 分割槽。COM+ 分割槽可擁有不同的自定義 COM 元件的版本。如果設定該標誌,請同時設定 AspPartitionID 配置資料庫屬性。

AuthAdvNotifyDisable = True 禁用密碼到期預先通知

AuthAnonymous = True 指定匿名身份驗證作為可能的 Windows 驗證方案之一,返回給客戶端作為有效驗證方案。

AuthBasic = False 指定基本身份驗證作為可能的 Windows 驗證方案之一,返回給客戶端作為有效驗證方案。

AuthChangeDisable = True 禁止更改密碼

AuthChangeUnsecure = False 允許在不安全埠更改密碼

AuthChangeURL = /iisadmpwd/achg.asp 使用者輸入新密碼時被呼叫的 URL

AuthExpiredUnsecureURL = /iisadmpwd/aexp3.asp 使用者密碼到期時呼叫的 URL

AuthExpiredURL = /iisadmpwd/aexp.asp 使用者密碼到期時呼叫的 URL。將以安全的 (HTTPS) 方式呼叫它。

AuthFlags = 5 作為有效方案返回給客戶端的 Windows 驗證方案的設定

AuthMD5 = False 指定摘要式身份驗證和高階摘要式身份驗證作為可能的 Windows 驗證方案之一,返回給客戶端作為有效驗證方案。

AuthNotifyPwdExpUnsecureURL = /iisadmpwd/anot3.asp 包含一個特定的 URL:如果使用者的密碼在 PasswordExpirePreNotifyDays 中指定的天數前到期,則呼叫該 URL。

AuthNotifyPwdExpURL = /iisadmpwd/anot.asp 包含一個特定的 URL:如果使用者的密碼在 PasswordExpirePreNotifyDays 中指定的天數前到期,則呼叫該 URL。將以安全的 (HTTPS) 方式呼叫它。

AuthNTLM = True 指定整合 Windows 身份驗證(也稱作質詢/響應或 NTLM 驗證)作為可能的 Windows 驗證方案之一,返回給客戶端作為有效驗證方案。

AuthPassport = False true 的值表示啟用了 Microsoft? .NET Passport 身份驗證

AuthPersistence = 64 指定了使用 NTLM 驗證跨越連線上的請求時的驗證永續性

AuthPersistSingleRequest = True 將該標誌設定成 true 指定驗證僅對一個連線上的單個請求持久。IIS 在每個請求的末尾重設驗證,並且在會話的下一個請求上強制執行重驗證。

AzEnable = False 用於虛擬目錄、應用程式,或配置資料庫中項相應的 URL 的 URL 授權。

AzImpersonationLevel = 0 用於應用程式的模擬行為,該模擬行為允許配置 Web 應用程式模擬客戶端使用者、IIS 工作程序,或工作程序的 IUSER_* 帳戶。

AzScopeName = 將虛擬目錄、應用程式或 URL 與作用域相關聯。如果沒有指定作用域或指定了空子符串,則使用 IIS 6.0 URL 授權的預設作用域。

AzStoreName = 授權管理器策略儲存與虛擬目錄、應用程式或 URL 相關聯。

CacheControlCustom = 指定了自定義 HTTP 1.1 快取控制指令。

CacheControlMaxAge = 0 指定了 HTTP 1.1 快取控制最大時間值。

CacheControlNoCache = False 保護快取內容的 HTTP 1.1 指令

CacheISAPI = True 在第一次使用 ISAPI 擴充套件後是否在記憶體中進行快取。

Caption = 提供物件的一段簡短文字描述(一行字串)。

CGITimeout = 300 指定 CGI 應用程式超時(以秒為單位)。

ContentIndexed = True 指定安裝的目錄索引程式是否應該檢索該目錄樹下的內容。

CreateCGIWithNewConsole = False 指示 CGI 應用程式是否在自己的控制檯上執行。

CreateProcessAsUser = True 是在系統環境中建立 CGI 程序還是在請求使用者環境中建立 CGI 程序。

DefaultDoc = index.aspx,default.aspx 包含一個或多個預設文件的檔名,如果在客戶端的請求中不包含檔名,將把預設文件的檔名返回給客戶端。

DefaultDocFooter = 附加到返回到客戶端的 HTML 檔案的自定義頁尾(頁尾並不附加到 ASP 檔案)。

DefaultLogonDomain = 伺服器用來對使用者進行身份驗證的預設域(在 UserIsolationMode = 2 的 Web 宿主方案中)。

Description = 提供物件的一段較長文字描述。

DirBrowseFlags = 1073741886 可以提供多少目錄和檔案資訊(如果啟用瀏覽)以及目錄中是否包含預設頁的標記。

DirBrowseShowDate = True 設定為 true 時,瀏覽目錄時將顯示日期資訊。

DirBrowseShowExtension = True 設定為 true 時,瀏覽目錄時將顯示副檔名。

DirBrowseShowLongDate = True 設定為 true 時,顯示目錄時將在擴充套件格式中顯示日期資訊。

DirBrowseShowSize = True 設定為 true 時,瀏覽目錄時將顯示檔案大小資訊。

DirBrowseShowTime = True 設定為 true 時,顯示目錄時將顯示檔案時間資訊。

DisableStaticFileCache = False 目錄的靜態檔案快取

DoDynamicCompression = False 與 HcDoDynamicCompression 屬性相同。

DontLog = False 是否將客戶端的請求寫入日誌檔案。

DoStaticCompression = False 與 HcDoStaticCompression 屬性相同。

EnableDefaultDoc = True 設定為 true 時,瀏覽目錄時系統會載入該目錄的預設文件(由 De,faultDoc 屬性指定)。

EnableDirBrowsing = False 設定為 true 時,將啟用目錄瀏覽。

EnableDocFooter = False 啟用或禁用由 DefaultDocFooter 屬性指定的自定義頁尾。

EnableReverseDns = False 啟用或禁用全球資訊網釋出服務(WWW 服務)的反向域名伺服器 (DNS) 查詢。

FrontPageWeb = True 伺服器例項是否由 Microsoft? FrontPage? 處理。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對我們的支援。