共用方式為


網站 < 限制的預設限制>

概觀

元素 <limits><siteDefaults> 元素會設定預設設定,以限制 Web 服務器的用戶端要求頻寬、連線數目或連線逾時。

注意

如果專案 <limits> 同時在 <siteDefaults> 區段和 <site> 特定月臺的 區段中設定,則區段中的 <site> 組態會用於該月臺。

相容性

版本 備註
IIS 8.5 <limits> 在 IIS 8.5 中修改專案。
IIS 8.0 在 IIS 8.0 中未修改專案 <limits>
IIS 7.5 <limits> 在 IIS 7.5 中修改專案。
IIS 7.0 元素 <limits><siteDefaults> 元素是在 IIS 7.0 中引進。
IIS 6.0 元素 <limits> 會取代下列 IIS 6.0 中繼基底設定:
  • ConnectionTimeout
  • MaxBandwidth
  • MaxConnections

安裝程式

元素 <limits><siteDefaults> 元素包含在 IIS 7 和更新版本的預設安裝中。

作法

如何設定伺服器的預設連線限制選項

  1. (IIS) 管理員開啟 Internet Information Services

    • 如果您使用 Windows Server 2012 或 Windows Server 2012 R2:

      • 在工作列上,依序按一下 [伺服器管理員]、[工具],然後按一下 [Internet Information Services] ([IIS) 管理員]。
    • 如果您使用 Windows 8 或 Windows 8.1:

      • 按住Windows鍵,按字母X,然後按一下[主控台]。
      • 按一下 [ 系統管理工具],然後按兩下 [Internet Information Services] ([IIS) 管理員]。
    • 如果您使用 Windows Server 2008 或 Windows Server 2008 R2:

      • 在工作列上,按一下 [ 開始],指向 [ 系統管理工具],然後按一下 [ Internet Information Services (IIS) 管理員]。
    • 如果您使用 Windows Vista 或 Windows 7:

      • 在工作列上,按一下 [開始],然後按一下[主控台]。
      • 按兩下 [ 系統管理工具],然後按兩下 [Internet Information Services] ([IIS) 管理員]。
  2. 在 [ 連線] 窗格中,然後按一下 [ 月臺] 節點。

  3. 在 [網站]窗格中,按一下 [動作] 窗格中的 [設定網站預設值...]。
    [網站] 窗格的螢幕擷取畫面,其中列出 [預設網站]。

  4. 在 [ 網站預設值] 對話方塊中,展開 [ 限制],指定限制選項,然後按一下 [ 確定]。
    [網站預設值] 對話方塊的螢幕擷取畫面,其中包含 [一般]、[行為]、[連線限制] 和 [失敗的要求追蹤] 選項。

組態

屬性

屬性 描述
connectionTimeout 選擇性 timeSpan 屬性。

指定 IIS 在中斷視為非使用中連線之前所等候的時間 (以秒為單位) 。 連線可能會被視為非使用中,原因如下:
  • HTTP.sys Timer_ConnectionIdle計時器已過期。 連線已過期並維持閒置狀態。
  • HTTP.sys Timer_EntityBody計時器已過期。 連線在要求實體主體抵達之前過期。 當要求具有實體主體時,HTTP API 會開啟Timer_EntityBody計時器。 一開始,此計時器的限制會設定為 connectionTimeout 值。 每次在此要求上收到另一個資料指示時,HTTP API 會重設計時器,讓連線更分鐘,如 connectionTimeout 屬性中所指定。
  • HTTP.sys Timer_AppPool計時器已過期。 連線已過期,因為要求在應用程式集區佇列中等候太長,伺服器應用程式無法排入佇列並加以處理。 此逾時持續時間為 connectionTimeout。
預設值 (00:02:00 兩分鐘) 。
maxBandwidth 選擇性 uint 屬性。

指定月臺所使用的網路頻寬上限,以每秒位元組為單位。 使用此設定有助於防止使用 IIS 活動多載網路。

預設值是 4294967295
maxConnections 選擇性 uint 屬性。

指定月臺的連線數目上限。 使用此設定來限制同時用戶端連線的數目。

預設值是 4294967295
maxUrlSegments 選擇性 uint 屬性。

指定 URL 中允許的區段數目上限。

預設值是 32

子元素

無。

組態範例

下列組態範例會指定 IIS 7 和更新版本的預設 limits 選項。

<system.applicationHost>
   <sites>
      <siteDefaults>
         <limits connectionTimeout="00:02:00" />
      </siteDefaults>
   </sites>
</system.applicationHost>

範例程式碼

下列程式碼範例會使用 3 分鐘來設定 IIS 7 和更新版本 connectionTimeout 的預設 limits 選項。

AppCmd.exe

appcmd.exe set config -section:system.applicationHost/sites /siteDefaults.limits.connectionTimeout:"00:03:00" /commit:apphost

注意

當您使用AppCmd.exe設定這些設定時,請務必將 認可 參數 apphost 設定為 。 這會將組態設定認可至ApplicationHost.config檔案中適當的位置區段。

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.GetApplicationHostConfiguration();
         ConfigurationSection sitesSection = config.GetSection("system.applicationHost/sites");
         ConfigurationElement siteDefaultsElement = sitesSection.GetChildElement("siteDefaults");

         ConfigurationElement limitsElement = siteDefaultsElement.GetChildElement("limits");
         limitsElement["connectionTimeout"] = TimeSpan.Parse("00:03:00");

         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.GetApplicationHostConfiguration
      Dim sitesSection As ConfigurationSection = config.GetSection("system.applicationHost/sites")
      Dim siteDefaultsElement As ConfigurationElement = sitesSection.GetChildElement("siteDefaults")

      Dim limitsElement As ConfigurationElement = siteDefaultsElement.GetChildElement("limits")
      limitsElement("connectionTimeout") = TimeSpan.Parse("00:03:00")

      serverManager.CommitChanges()
   End Sub

End Module

JavaScript

var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var sitesSection = adminManager.GetAdminSection("system.applicationHost/sites", "MACHINE/WEBROOT/APPHOST");
var siteDefaultsElement = sitesSection.ChildElements.Item("siteDefaults");

var limitsElement = siteDefaultsElement.ChildElements.Item("limits");
limitsElement.Properties.Item("connectionTimeout").Value = "00:03:00";

adminManager.CommitChanges();

VBScript

Set adminManager = WScript.CreateObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set sitesSection = adminManager.GetAdminSection("system.applicationHost/sites", "MACHINE/WEBROOT/APPHOST")
Set siteDefaultsElement = sitesSection.ChildElements.Item("siteDefaults")

Set limitsElement = siteDefaultsElement.ChildElements.Item("limits")
limitsElement.Properties.Item("connectionTimeout").Value = "00:03:00"

adminManager.CommitChanges()