IIS 之 Web 服務器上的 ASP.NET 進程模型設置


  配置 Microsoft Internet 信息服務 (IIS) Web 服務器上的 ASP.NET 進程模型設置。 processModel 節只能在 Machine.config 文件中進行設置,它影響服務器上運行的所有 ASP.NET 應用程序。

  Machine.config 文件位置在:%windir%\Microsoft.NET\Framework\framework_version\CONFIG 目錄下,如下圖是我本機的位置:

  

  注意:對 processModel 元素的更改將只有在輔助進程重新啟動之后才生效,而不是像其他配置元素那樣在更改設置之后立即生效。

<processModel 
   enable="true|false"
   timeout="hrs:mins:secs|Infinite" 
   idleTimeout="hrs:mins:secs|Infinite"
   shutdownTimeout="hrs:mins:secs|Infinite"
   requestLimit="num|Infinite"
   requestQueueLimit="num|Infinite"
   restartQueueLimit="num|Infinite"
   memoryLimit="percent"
   webGarden="true|false"
   cpuMask="num"
   userName="<username>"
   password="<secure password>"
   logLevel="All|None|Errors"
   clientConnectedCheck="hrs:mins:secs|Infinite"
   comAuthenticationLevel="Default|None|Connect|Call| 
               Pkt|PktIntegrity|PktPrivacy"
   comImpersonationLevel="Default|Anonymous|Identify|
               Impersonate|Delegate"
   responseDeadlockInterval="hrs:mins:secs|Infinite"
   responseRestartDeadlockInterval="hrs:mins:secs|Infinite"
   autoConfig="true|false"
   maxWorkerThreads="num"
   maxIoThreads="num"
   minWorkerThreads="num"
   minIoThreads="num"
   serverErrorMessageFile="" 
   pingFrequency="Infinite" 
   pingTimeout="Infinite" 
   maxAppDomains="2000"
/>

特性和元素

特性

特性

說明

autoConfig

指定是否自動配置下列設置,以便基於計算機配置實現最佳性能:

這些值按照位於 http://support.microsoft.com/?id=821268 上的知識庫文章進行設置。

此特性不影響 .NET Framework 客戶端應用程序,而只影響 ASP.NET 應用程序。

autoConfig 特性可以為下列值之一。

 
術語 定義
True 指示 ASP.NET 自動配置上述列表中的特性,以便基於計算機配置實現最佳性能。
False 指示 ASP.NET 應當使用為上述列表中的特性顯式定義的值。

除非以前已經有一個現有配置,否則 Machine.config 文件中的默認值為 True。

clientConnectedCheck

指定在 ASP.NET 檢查以確定客戶端是否已連接前在隊列中保留的請求的長度。

默認值為 "00:00:05"(5 秒)。

comAuthenticationLevel

指定 DCOM 安全的身份驗證級別。

comAuthenticationLevel 特性可以為下列值之一。

 
Value 說明
Call 指定在每一遠程過程調用的開始當服務器接收請求時 DCOM 驗證客戶端的憑據。
Connect 指定只有在客戶端與服務器建立連接時 DCOM 才驗證客戶端的憑據。
Default 指定 DCOM 使用其標准安全協商算法確定身份驗證級別。
None 不指定身份驗證。
Pkt 指定 DCOM 驗證所接收的所有數據是否都來自預期的客戶端。 數據報傳輸始終使用 Pkt 身份驗證。
PktIntegrity 指定 DCOM 驗證和確認未修改在客戶端和服務器之間傳輸的任何數據。
PktPrivacy 指定 DCOM 驗證所有以前的級別並加密每一遠程過程調用的參數值。

默認值為 Connect。

comImpersonationLevel

指定 COM 安全的身份驗證級別。

comImpersonationLevel 特性可以為下列值之一。

 
Value 說明
Anonymous 指定客戶端對於服務器而言是匿名的。 服務器可以模擬客戶端,但是模擬標記不會包含任何信息。 在 .NET Framework 1.1 版中,不支持 Anonymous。
Default 指定 DCOM 使用其標准安全協商算法確定模擬級別。
Delegate 指定服務器進程在代表客戶端來執行時可以模擬客戶端的安全上下文。 服務器進程還可以在代表客戶端時使用掩飾向其他服務器發出傳出呼叫。 服務器可以使用其他計算機上的客戶端的安全上下文,以作為客戶端來獲得對本地和遠程資源的訪問權限。 當在該級別模擬時,可以讓模擬標記穿過任意數目的計算機邊界。
Identify 指定服務器可以包含客戶端的標識。 服務器可以模擬客戶端以進行訪問控制列表 (ACL) 檢查,但是無法作為客戶端訪問系統對象。
Impersonate 指定服務器進程在代表客戶端來執行時可以模擬客戶端的安全上下文。 此級別的模擬可用來訪問本地資源,如文件。 當在該級別模擬時,模擬標記可以只橫穿一個計算機邊界。

默認值為 Impersonate。

cpuMask

指定在多處理器服務器上哪些處理器 (CPU) 可以運行 ASP.NET 進程。 該值指定一個位模式,它指示滿足運行 ASP.NET 線程的條件的 CPU。 例如,cpuMask 十六進制值 0x0d 代表位模式 1101。 在具有四個 CPU 的計算機上,這表明可以在 CPU 0、2,和 3,而不是 CPU 1 上安排 ASP.NET 進程。 ASP.NET 為滿足條件的每個 CPU 啟動一個輔助進程。 如果 webGarden 特性為 true,則該特性會將輔助進程限制為滿足條件的 CPU 的數目。 最大輔助進程數目等於 CPU 的數目。 如果 webGarden 為 false,則該特性被忽略,並且將只有一個輔助進程運行。 這是默認行為。

默認值為 "0xffffffff"。

enable

指定是否啟用進程模型。

enable 特性可以為下列值之一。

 
Value 說明
True 指示進程模型已啟用。
False 指示進程模型未啟用。

默認值為 true。

idleTimeout

以字符串格式 (hr:min:sec) 指定不活動期限,在該不活動期限后,ASP.NET 將自動結束輔助進程。

默認值為 Infinite。

logLevel

指定要記錄到事件日志的事件類型。

logLevel 特性可以為下列值之一。

 
Value 說明
All 指定記錄所有進程事件。
Errors 指定只記錄意外關閉、內存限制關閉和死鎖關閉。
None 指定不記錄任何事件。

默認值為 Errors。

maxAppDomains

指定一個進程中允許的應用程序域的最大數目。

該特性可以小於或等於 2000。

默認值為 2000。

maxIoThreads

按 CPU 配置用於進程的 I/O 線程的最大數目。 例如,如果此值在單處理器服務器上為 25,則 ASP.NET 將使用運行時 API 將進程限制設置為 25。 在雙處理器服務器上,限制設置為 50。 此特性的值必須大於等於 httpRuntime 配置選項中的 minFreeThread 特性設置。

有關線程處理類型的信息,請參見 Improving ASP.NET Performance(提高 ASP.NET 性能)中的“Threading Explained”(線程處理說明)。

該特性的范圍是從 5 到 100。

默認值為 20。

maxWorkerThreads

按 CPU 配置用於進程的輔助線程的最大數目。 例如,如果此值在單處理器服務器上為 25,則 ASP.NET 將使用運行時 API 將進程限制設置為 25。 在雙處理器服務器上,限制設置為 50。 此特性的值必須大於等於 httpRuntime 配置選項中的 minFreeThread 特性設置。

有關線程處理類型的信息,請參見 Improving ASP.NET Performance(提高 ASP.NET 性能)中的“Threading Explained”(線程處理說明)。

該特性的范圍是從 5 到 100。

默認值為 20。

memoryLimit

指定在 ASP.NET 啟動新進程和重新分配現有請求前,輔助進程可以使用的最大內存大小。該屬性的單位為相對於總系統內存的百分比。

默認值為 60。

minIoThreads

按 CPU 配置用於進程的 I/O 線程的最小數目。 另外,請參見 maxIoThreads。

有關線程處理類型的信息,請參見 Improving ASP.NET Performance(提高 ASP.NET 性能)中的“Threading Explained”(線程處理說明)。

默認值為 1。

minWorkerThreads

按 CPU 配置用於進程的輔助線程的最小數目。 另外,請參見 maxWorkerThreads。

有關線程處理類型的信息,請參見 Improving ASP.NET Performance(提高 ASP.NET 性能)中的“Threading Explained”(線程處理說明)。

默認值為 1。

password

如果它存在並且與 userName 一起使用,將導致輔助進程使用配置的 Microsoft Windows 標識運行。 請參見 userName,獲取有關無需密碼的特殊名稱 System 和 Machine 的更多信息,以及有關在注冊表中存儲加密的輔助進程憑據的信息。

Note Note
在配置文件中存儲憑據會有安全風險。 有關更多信息,請參見本文檔后面的“在注冊表中存儲用戶名和密碼”。

默認值為 AutoGenerate。

pingFrequency

以標准進程模型格式 (hr:min:sec) 指定時間間隔,該時間間隔是 ISAPI 擴展對輔助進程執行 ping 命令來確定其是否正在運行所采用的時間間隔。 如果在 pingTimeout 時間間隔內該輔助進程沒有運行,將重新啟動該輔助進程。

默認值為 Infinite。

pingTimeout

以標准進程模型格式 (hr:min:sec) 指定時間間隔,在該時間間隔后,將重新啟動沒有響應的響應輔助進程。 ISAPI 擴展每隔 pingFrequency 間隔會對輔助進程使用 ping 命令。 如果輔助進程在 pingTimeout 間隔內沒有響應,則重新啟動該進程。

默認值為 Infinite。

requestLimit

指定 ASP.NET 自動啟動新輔助進程以代替當前輔助進程前允許的請求的數目。

默認值為 Infinite。

requestQueueLimit

指定隊列中允許的請求數,超過此數目后,ASP.NET 將開始向新請求返回“503 - 服務器太忙”消息。

默認值為 5000。

responseDeadlockInterval

以標准進程模型格式 (hr:min:sec) 指定時間間隔,在該時間間隔后,如果滿足以下條件,進程將重新啟動:

  • 有排隊的請求。

  • 在此時間間隔期間沒有響應。

默認值為 "0:03:00"(3 分鍾)。

responseRestartDeadlockInterval

ASP.NET 不再使用該特性,提供該特性只是為了兼容。 如果該屬性出現在配置文件中,也不會導致配置錯誤。 現在,當出現死鎖情況時,所有循環都將由 responseDeadlockInterval 特性控制。

默認值為 "0:03:00"(3 分鍾)。

restartQueueLimit

指定在出現非標准終止后,等待輔助進程重新啟動時排入隊列的請求的最大數目。 如果是完全關閉或標准的重新啟動,此設置將不適用。

默認值為 10。

serverErrorMessageFile

指定在發生致命錯誤時用來代替默認的“服務器不可用”消息的文件的內容。 該文件位置是相對於 Machine.config 文件的位置,或者可以是絕對路徑。 如果該特性不存在,則使用默認的“服務器不可用”消息。

shutdownTimeout

指定輔助進程關閉所允許的分鍾數。 在超時過期后,ASP.NET 關閉輔助進程。 該時間以 hr:min:sec 字符串格式表示。

默認值為 "0:00:05"(5 秒)。

timeout

指定分鍾數,超過該分鍾數 ASP.NET 將啟動新的輔助進程以替代當前輔助進程。

默認值為 Infinite。

userName

指定 ASP.NET 將使用與默認進程標識不同的 Windows 標識運行輔助進程。 默認情況下,該特性設置為 Machine,並且進程以 ASPNET 用戶帳戶運行,該帳戶是在安裝 ASP.NET 時自動創建的。 ASPNET 帳戶的密碼是在安裝時通過加密生成的。 如果在該特性和 password 特性中存在有效的憑據,則將使用給定的帳戶運行該進程。 userName 的另一個值是 System,密碼為 AutoGenerate,該值以管理帳戶運行進程,並允許在該進程下運行的所有 ASP.NET 用戶代碼具有完全的管理權限。 有關在作為域控制器的服務器上使用 ASP.NET 的信息,請參見本主題后面的“備注”。

Note Note
此特性和 password 特性以明文形式存儲在配置文件中。 雖然 Microsoft Internet 信息服務 (IIS) 不傳輸 .config 文件來響應用戶代理請求,但是可以通過其他途徑讀取配置文件。 例如,在服務器的域上具有適當憑據的已經過身份驗證的用戶可以讀取配置文件。 出於安全考慮,processModel 節支持在注冊表中存儲加密的 userName 和 password 特性。 憑據必須是 REG_BINARY 格式並由 Windows 2000 和 Windows XP 數據保護 API (DPAPI) 加密函數加密。 有關更多信息,請參見本文檔后面的“在注冊表中存儲用戶名和密碼”。

默認值為 "machine"。

webGarden

在與 cpuMask 特性一起使用時控制 CPU 關聯。 (多處理器 Web 服務器稱作網絡園)。

webGarden 特性可以為下列值之一。

 
Value 說明
True 指示 cpuMask 特性用於指定哪些 CPU 符合運行 ASP.NET 進程的條件。
False 指示由 Windows 操作系統安排 CPU 使用。 cpuMask 特性被忽略,並且只運行一個輔助進程。

默認值為 False。

子元素

無。

父元素

 

元素

說明

system.web

指定配置文件中 ASP.NET 配置設置的根元素,並包含用於配置 ASP.NET Web 應用程序和控制應用程序行為方式的配置元素。

 

要查看英語原文,請勾選“英語”復選框。也可將鼠標指針移到文本上,在彈出窗口中顯示英語原文。
翻譯
英語
本文檔已存檔,並且將不進行維護。

processModel 元素(ASP.NET 設置架構)

 

[本文檔僅供預覽,在以后的發行版中可能會發生更改。包含的空白主題用作占位符。]

配置 Microsoft Internet 信息服務 (IIS) Web 服務器上的 ASP.NET 進程模型設置。 processModel 節只能在 Machine.config 文件中進行設置,它影響服務器上運行的所有 ASP.NET 應用程序。

警告說明 警告

processModel 元素的更改將只有在輔助進程重新啟動之后才生效,而不是像其他配置元素那樣在更改設置之后立即生效。 有關更多信息,請參見本主題后面的“備注”。

 
復制
<processModel 
   enable="true|false"
   timeout="hrs:mins:secs|Infinite" 
   idleTimeout="hrs:mins:secs|Infinite"
   shutdownTimeout="hrs:mins:secs|Infinite"
   requestLimit="num|Infinite"
   requestQueueLimit="num|Infinite"
   restartQueueLimit="num|Infinite"
   memoryLimit="percent"
   webGarden="true|false"
   cpuMask="num"
   userName="<username>"
   password="<secure password>"
   logLevel="All|None|Errors"
   clientConnectedCheck="hrs:mins:secs|Infinite"
   comAuthenticationLevel="Default|None|Connect|Call| 
               Pkt|PktIntegrity|PktPrivacy"
   comImpersonationLevel="Default|Anonymous|Identify|
               Impersonate|Delegate"
   responseDeadlockInterval="hrs:mins:secs|Infinite"
   responseRestartDeadlockInterval="hrs:mins:secs|Infinite"
   autoConfig="true|false"
   maxWorkerThreads="num"
   maxIoThreads="num"
   minWorkerThreads="num"
   minIoThreads="num"
   serverErrorMessageFile="" 
   pingFrequency="Infinite" 
   pingTimeout="Infinite" 
   maxAppDomains="2000"
/>

以下幾節描述了特性、子元素和父元素。

特性

 

特性

說明

autoConfig

指定是否自動配置下列設置,以便基於計算機配置實現最佳性能:

這些值按照位於 http://support.microsoft.com/?id=821268 上的知識庫文章進行設置。

此特性不影響 .NET Framework 客戶端應用程序,而只影響 ASP.NET 應用程序。

autoConfig 特性可以為下列值之一。

 
術語 定義
True 指示 ASP.NET 自動配置上述列表中的特性,以便基於計算機配置實現最佳性能。
False 指示 ASP.NET 應當使用為上述列表中的特性顯式定義的值。

除非以前已經有一個現有配置,否則 Machine.config 文件中的默認值為 True。

clientConnectedCheck

指定在 ASP.NET 檢查以確定客戶端是否已連接前在隊列中保留的請求的長度。

默認值為 "00:00:05"(5 秒)。

comAuthenticationLevel

指定 DCOM 安全的身份驗證級別。

comAuthenticationLevel 特性可以為下列值之一。

 
Value 說明
Call 指定在每一遠程過程調用的開始當服務器接收請求時 DCOM 驗證客戶端的憑據。
Connect 指定只有在客戶端與服務器建立連接時 DCOM 才驗證客戶端的憑據。
Default 指定 DCOM 使用其標准安全協商算法確定身份驗證級別。
None 不指定身份驗證。
Pkt 指定 DCOM 驗證所接收的所有數據是否都來自預期的客戶端。 數據報傳輸始終使用 Pkt 身份驗證。
PktIntegrity 指定 DCOM 驗證和確認未修改在客戶端和服務器之間傳輸的任何數據。
PktPrivacy 指定 DCOM 驗證所有以前的級別並加密每一遠程過程調用的參數值。

默認值為 Connect。

comImpersonationLevel

指定 COM 安全的身份驗證級別。

comImpersonationLevel 特性可以為下列值之一。

 
Value 說明
Anonymous 指定客戶端對於服務器而言是匿名的。 服務器可以模擬客戶端,但是模擬標記不會包含任何信息。 在 .NET Framework 1.1 版中,不支持 Anonymous。
Default 指定 DCOM 使用其標准安全協商算法確定模擬級別。
Delegate 指定服務器進程在代表客戶端來執行時可以模擬客戶端的安全上下文。 服務器進程還可以在代表客戶端時使用掩飾向其他服務器發出傳出呼叫。 服務器可以使用其他計算機上的客戶端的安全上下文,以作為客戶端來獲得對本地和遠程資源的訪問權限。 當在該級別模擬時,可以讓模擬標記穿過任意數目的計算機邊界。
Identify 指定服務器可以包含客戶端的標識。 服務器可以模擬客戶端以進行訪問控制列表 (ACL) 檢查,但是無法作為客戶端訪問系統對象。
Impersonate 指定服務器進程在代表客戶端來執行時可以模擬客戶端的安全上下文。 此級別的模擬可用來訪問本地資源,如文件。 當在該級別模擬時,模擬標記可以只橫穿一個計算機邊界。

默認值為 Impersonate。

cpuMask

指定在多處理器服務器上哪些處理器 (CPU) 可以運行 ASP.NET 進程。 該值指定一個位模式,它指示滿足運行 ASP.NET 線程的條件的 CPU。 例如,cpuMask 十六進制值 0x0d 代表位模式 1101。 在具有四個 CPU 的計算機上,這表明可以在 CPU 0、2,和 3,而不是 CPU 1 上安排 ASP.NET 進程。 ASP.NET 為滿足條件的每個 CPU 啟動一個輔助進程。 如果 webGarden 特性為 true,則該特性會將輔助進程限制為滿足條件的 CPU 的數目。 最大輔助進程數目等於 CPU 的數目。 如果 webGarden 為 false,則該特性被忽略,並且將只有一個輔助進程運行。 這是默認行為。

默認值為 "0xffffffff"。

enable

指定是否啟用進程模型。

enable 特性可以為下列值之一。

 
Value 說明
True 指示進程模型已啟用。
False 指示進程模型未啟用。

默認值為 true。

idleTimeout

以字符串格式 (hr:min:sec) 指定不活動期限,在該不活動期限后,ASP.NET 將自動結束輔助進程。

默認值為 Infinite。

logLevel

指定要記錄到事件日志的事件類型。

logLevel 特性可以為下列值之一。

 
Value 說明
All 指定記錄所有進程事件。
Errors 指定只記錄意外關閉、內存限制關閉和死鎖關閉。
None 指定不記錄任何事件。

默認值為 Errors。

maxAppDomains

指定一個進程中允許的應用程序域的最大數目。

該特性可以小於或等於 2000。

默認值為 2000。

maxIoThreads

按 CPU 配置用於進程的 I/O 線程的最大數目。 例如,如果此值在單處理器服務器上為 25,則 ASP.NET 將使用運行時 API 將進程限制設置為 25。 在雙處理器服務器上,限制設置為 50。 此特性的值必須大於等於 httpRuntime 配置選項中的 minFreeThread 特性設置。

有關線程處理類型的信息,請參見 Improving ASP.NET Performance(提高 ASP.NET 性能)中的“Threading Explained”(線程處理說明)。

該特性的范圍是從 5 到 100。

默認值為 20。

maxWorkerThreads

按 CPU 配置用於進程的輔助線程的最大數目。 例如,如果此值在單處理器服務器上為 25,則 ASP.NET 將使用運行時 API 將進程限制設置為 25。 在雙處理器服務器上,限制設置為 50。 此特性的值必須大於等於 httpRuntime 配置選項中的 minFreeThread 特性設置。

有關線程處理類型的信息,請參見 Improving ASP.NET Performance(提高 ASP.NET 性能)中的“Threading Explained”(線程處理說明)。

該特性的范圍是從 5 到 100。

默認值為 20。

memoryLimit

指定在 ASP.NET 啟動新進程和重新分配現有請求前,輔助進程可以使用的最大內存大小。該屬性的單位為相對於總系統內存的百分比。

默認值為 60。

minIoThreads

按 CPU 配置用於進程的 I/O 線程的最小數目。 另外,請參見 maxIoThreads。

有關線程處理類型的信息,請參見 Improving ASP.NET Performance(提高 ASP.NET 性能)中的“Threading Explained”(線程處理說明)。

默認值為 1。

minWorkerThreads

按 CPU 配置用於進程的輔助線程的最小數目。 另外,請參見 maxWorkerThreads。

有關線程處理類型的信息,請參見 Improving ASP.NET Performance(提高 ASP.NET 性能)中的“Threading Explained”(線程處理說明)。

默認值為 1。

password

如果它存在並且與 userName 一起使用,將導致輔助進程使用配置的 Microsoft Windows 標識運行。 請參見 userName,獲取有關無需密碼的特殊名稱 System 和 Machine 的更多信息,以及有關在注冊表中存儲加密的輔助進程憑據的信息。

Note Note
在配置文件中存儲憑據會有安全風險。 有關更多信息,請參見本文檔后面的“在注冊表中存儲用戶名和密碼”。

默認值為 AutoGenerate。

pingFrequency

以標准進程模型格式 (hr:min:sec) 指定時間間隔,該時間間隔是 ISAPI 擴展對輔助進程執行 ping 命令來確定其是否正在運行所采用的時間間隔。 如果在 pingTimeout 時間間隔內該輔助進程沒有運行,將重新啟動該輔助進程。

默認值為 Infinite。

pingTimeout

以標准進程模型格式 (hr:min:sec) 指定時間間隔,在該時間間隔后,將重新啟動沒有響應的響應輔助進程。 ISAPI 擴展每隔 pingFrequency 間隔會對輔助進程使用 ping 命令。 如果輔助進程在 pingTimeout 間隔內沒有響應,則重新啟動該進程。

默認值為 Infinite。

requestLimit

指定 ASP.NET 自動啟動新輔助進程以代替當前輔助進程前允許的請求的數目。

默認值為 Infinite。

requestQueueLimit

指定隊列中允許的請求數,超過此數目后,ASP.NET 將開始向新請求返回“503 - 服務器太忙”消息。

默認值為 5000。

responseDeadlockInterval

以標准進程模型格式 (hr:min:sec) 指定時間間隔,在該時間間隔后,如果滿足以下條件,進程將重新啟動:

  • 有排隊的請求。

  • 在此時間間隔期間沒有響應。

默認值為 "0:03:00"(3 分鍾)。

responseRestartDeadlockInterval

ASP.NET 不再使用該特性,提供該特性只是為了兼容。 如果該屬性出現在配置文件中,也不會導致配置錯誤。 現在,當出現死鎖情況時,所有循環都將由 responseDeadlockInterval 特性控制。

默認值為 "0:03:00"(3 分鍾)。

restartQueueLimit

指定在出現非標准終止后,等待輔助進程重新啟動時排入隊列的請求的最大數目。 如果是完全關閉或標准的重新啟動,此設置將不適用。

默認值為 10。

serverErrorMessageFile

指定在發生致命錯誤時用來代替默認的“服務器不可用”消息的文件的內容。 該文件位置是相對於 Machine.config 文件的位置,或者可以是絕對路徑。 如果該特性不存在,則使用默認的“服務器不可用”消息。

shutdownTimeout

指定輔助進程關閉所允許的分鍾數。 在超時過期后,ASP.NET 關閉輔助進程。 該時間以 hr:min:sec 字符串格式表示。

默認值為 "0:00:05"(5 秒)。

timeout

指定分鍾數,超過該分鍾數 ASP.NET 將啟動新的輔助進程以替代當前輔助進程。

默認值為 Infinite。

userName

指定 ASP.NET 將使用與默認進程標識不同的 Windows 標識運行輔助進程。 默認情況下,該特性設置為 Machine,並且進程以 ASPNET 用戶帳戶運行,該帳戶是在安裝 ASP.NET 時自動創建的。 ASPNET 帳戶的密碼是在安裝時通過加密生成的。 如果在該特性和 password 特性中存在有效的憑據,則將使用給定的帳戶運行該進程。 userName 的另一個值是 System,密碼為 AutoGenerate,該值以管理帳戶運行進程,並允許在該進程下運行的所有 ASP.NET 用戶代碼具有完全的管理權限。 有關在作為域控制器的服務器上使用 ASP.NET 的信息,請參見本主題后面的“備注”。

Note Note
此特性和 password 特性以明文形式存儲在配置文件中。 雖然 Microsoft Internet 信息服務 (IIS) 不傳輸 .config 文件來響應用戶代理請求,但是可以通過其他途徑讀取配置文件。 例如,在服務器的域上具有適當憑據的已經過身份驗證的用戶可以讀取配置文件。 出於安全考慮,processModel 節支持在注冊表中存儲加密的 userName 和 password 特性。 憑據必須是 REG_BINARY 格式並由 Windows 2000 和 Windows XP 數據保護 API (DPAPI) 加密函數加密。 有關更多信息,請參見本文檔后面的“在注冊表中存儲用戶名和密碼”。

默認值為 "machine"。

webGarden

在與 cpuMask 特性一起使用時控制 CPU 關聯。 (多處理器 Web 服務器稱作網絡園)。

webGarden 特性可以為下列值之一。

 
Value 說明
True 指示 cpuMask 特性用於指定哪些 CPU 符合運行 ASP.NET 進程的條件。
False 指示由 Windows 操作系統安排 CPU 使用。 cpuMask 特性被忽略,並且只運行一個輔助進程。

默認值為 False。

子元素

無。

父元素

 

元素

說明

system.web

指定配置文件中 ASP.NET 配置設置的根元素,並包含用於配置 ASP.NET Web 應用程序和控制應用程序行為方式的配置元素。

  托管代碼配置系統不讀取 processModel 配置設置。 這些 processModel 配置設置而是由 aspnet_isapi.dll 非托管 DLL 直接讀取的。 在重新啟動 IIS 輔助進程之前將不應用對此節的更改。

  當 ASP.NET 運行於本機模式的 IIS 版本 6 下時,將使用 IIS 6 進程模型,並忽略 processModel 節中的某些特性。 但是,以下特性仍是適用的:

  autoConfig

  maxIoThreads

  maxWorkerThreads

  minIoThreads

  minWorkerThreads

  requestQueueLimit

  responseDeadlockInterval

  關於 IIS 7 進程模型的信息,請參見 “應用程序池的進程模型配置”

  若要在 IIS 6.0 中配置進程標識、循環或其他進程模型值,請使用 Internet 服務管理器用戶界面來配置應用程序的 IIS 輔助進程。

  注意:配置 IIS 6 以在 IIS 5.0 隔離模式下運行 ASP.NET 時,無法使用 ASP.NET 2.0。

  時間值采用“hours:minutes:seconds”形式。 如果只給出一個數字而沒有冒號,該值將被視為分鍾;也就是說 timeout="4" 等於 timeout="00:04:00"。

  如果 ASP.NET 應用程序導致 ASP.NET 輔助進程(在 Windows 2000 和 Windows XP Professional 上為 aspnet_wp.exe,在 Windows Server 2003 上為 w3wp.exe)重新啟動,同時出現錯誤消息,指出重新啟動可能是由於死鎖狀態而造成的,則應該增大 responseDeadlockInterval 特性。

域控制器和本地 ASPNET 帳戶

  如果您將 .NET Framework 1.1 版本安裝在一個域控制器上,安裝過程將不會創建本地 ASPNET 帳戶。 而 ASP.NET 應用程序以其他標識運行,如下所示:

  • 在運行 Windows 2000 Server 的域控制器上,ASP.NET 應用程序以 IWAM_machinename 標識運行。

  • 在運行 Windows Server 2003 的域控制器上,ASP.NET 應用程序以 NETWORK SERVICE 標識運行(與 IIS 隔離模式無關)。

在有些情況下,在域控制器上運行 ASP.NET 要求您采取額外的步驟才能使安裝正常進行。 有關在域控制器上運行 .NET Framework 1.1 版的更多信息,請轉到知識庫 (KB) 搜索頁面並參見文章 Q824308“IWAM Account is Not Granted the Impersonate Privilege for ASP.NET 1.1 on Windows 2000 Domain Controller with SP4”(在安裝了 SP4 的 Windows 2000 域控制器上沒有授予 IWAM 帳戶用於 ASP.NET 1.1 的模擬特權)。有關在域控制器上運行 .NET Framework 1.0 版的更多信息,請轉到知識庫 (KB) 搜索頁面並參見文章 Q315158“ASP.NET Does Not Work with the Default ASPNET Account on a Domain Controller”(ASP.NET 不與域控制器上的默認 ASPNET 帳戶一起工作)。

在注冊表中存儲用戶名和密碼

要加密用戶名和密碼並將它們存儲在注冊表中,請按照下面的示例所示設置 userName 和 password 特性。

 
復制
   userName="registry:HKLM\Software\AspNetProcess,Name"
   password="registry:HKLM\Software\AspNetProcess,Pwd"

字符串中位於關鍵字 registry 之后和逗號 (,) 之前的部分表示 ASP.NET 打開的注冊表項的名稱。 逗號 (,) 之后的部分包含一個字符串值名稱,ASP.NET 從此名稱中讀取憑據。 必須有逗號 (,) 並且憑據必須存儲在 HKLM 配置單元中。 如果配置格式不正確,則 ASP.NET 不會啟動輔助進程,然后將顯示造成當前帳戶創建失敗的代碼路徑。

憑據必須為 REG_BINARY 格式,並且包含 Windows API 函數 CryptProtectData 調用的輸出。 您可以使用 Aspnet_setreg.exe 創建加密的憑據並將它們存儲在注冊表中。 Aspnet_setreg.exe 使用 CryptProtectData 來完成加密。 若要下載 Aspnet_setreg.exe 以及 Microsoft Visual C++ 源代碼和文檔,請轉到 ASP.NET 網站並搜索“aspnet_setreg”。

應該對存儲加密憑據的密鑰的訪問權限進行配置,以便僅向 Administrators 和 SYSTEM 提供訪問權。 由於密鑰會被作為 SYSTEM 運行的 ASP.NET 進程讀取,因此請設置以下權限:

 
復制
Administrators:F
SYSTEM:F
CREATOR OWNER:F 
ProcessAccount: R

這有助於以下列方法保護數據:

  • ACL 權限要求訪問數據的身份是 Administrator。

  • 攻擊者必須在服務器上運行代碼 (CryptUnprotectData) 才能恢復帳戶的憑據。

默認配置

  下面的默認 processModel 元素不是在 Machine.config 文件或根 Web.config 文件中顯式配置的。 而是由應用程序返回的默認配置。

<processModel 
   enable="true" 
   timeout="Infinite" 
   idleTimeout="Infinite" 
   shutdownTimeout="00:00:05" 
   requestLimit="Infinite" 
   requestQueueLimit="5000" 
   restartQueueLimit="10" 
   memoryLimit="60" 
   webGarden="false" 
   cpuMask="0xffffffff" 
   userName="machine" 
   password="AutoGenerate" 
   logLevel="Errors" 
   clientConnectedCheck="00:00:05" 
   comAuthenticationLevel="Connect" 
   comImpersonationLevel="Impersonate" 
   responseDeadlockInterval="00:03:00" 
   responseRestartDeadlockInterval="00:03:00" 
   autoConfig="true" 
   maxWorkerThreads="20" 
   maxIoThreads="20" 
   minWorkerThreads="1" 
   minIoThreads="1" 
   serverErrorMessageFile="" 
   pingFrequency="Infinite" 
   pingTimeout="Infinite" 
   asyncOption="20" 
   maxAppDomains="2000" 
/>  

  下面的默認 processModel 元素是在 .NET Framework 1.0 和 1.1 版的 Machine.config 文件中配置的。

<processModel
   enable="true"
   timeout="Infinite"
   idleTimeout="Infinite"
   shutdownTimeout="0:00:05" 
   requestLimit="Infinite" 
   requestQueueLimit="5000" 
   restartQueueLimit="10"
   memoryLimit="60" 
   webGarden="false"
   cpuMask="0xffffffff"
   userName="machine"
   password="AutoGenerate"
   logLevel="Errors"
   clientConnectedCheck="0:00:05"
   comAuthenticationLevel="Connect"
   comImpersonationLevel="Impersonate"
   responseRestartDeadlockInterval="00:09:00"
   responseDeadlockInterval="00:03:00" 
   <!-- In the .NET Framework version 1.1, the next two attributes are
        set to 20. -->
   maxWorkerThreads="25"
   maxIoThreads="25"
/>

 

配置節處理程序

ProcessModelSection

配置成員

ProcessModel

可配置的位置

Machine.config

要求

Microsoft Internet 信息服務 (IIS) 版本 5.0、5.1 或 6.0

.NET Framework 版本 1.0、1.1 或 2.0

Microsoft Visual Studio 2003 或 Visual Studio 2005

 

  參考地址:https://msdn.microsoft.com/zh-cn/library/7w2sway1.aspx


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM