修改 ASP.NET 要求佇列限制

上次修改主題的時間: 2011-02-24

詢問 ASP.NET 時,服務要求會繼續存在,並排入 Internet Information Services (IIS) 和 ASP.NET 工作者處理序間管道的佇列之中。(ASP.NET 會在本身的處理序中執行 - 這與典型的 ASP 不同,典型的 ASP 會在與 IIS 服務相同的處理序中執行)。根據預設,這個佇列最多可以包含 5,000 個要求。如果要求超過 5,000 個,使用者會收到「503 - 服務無法使用」錯誤,並拒絕服務。

雖然預設值對於相對較小的 Communicator Web Access (2007 R2 版本) 使用者數目來說已經足夠,可是當使用者數目接近 4,500 人時,很容易就會超過要求佇列限制。因此,您會需要將要求佇列限制增加到 15,000,您可以透過編輯 .NET Framework 的 machine.config 檔案,達成這項工作。將要求佇列限制設定成 15,000 之後,就可以提供足夠的佇列來處理所有的用戶端要求。此外,如果伺服器是在 Windows Server 2008 上執行,您需要設定 appConcurrentRequestLimit,以支援 5,000 個以上的連線。

若要修改 ASP.NET 要求佇列限制

  1. 按一下 [開始],然後按一下 [執行]****。

  2. 在 [執行] 對話方塊中,輸入 notepad %systemroot%\Microsoft.Net\Framework64\v2.0.50727\CONFIG\machine.config,然後按一下 [確定]。

  3. 找到類似下列的 processModel 元素:<processModel autoConfig="true" />

  4. 以下列值取代 processModel 元素:<processModel enable="true" requestQueueLimit="15000" />

  5. 儲存並關閉 Machine.config 檔案。

  6. 若為 Windows Server 2008,在 [執行]**** 對話方塊中輸入 appcmd.exe set config /section:serverRuntime /appConcurrentRequestLimit:<#of users * 1.5>