Elemento processModel (schema delle impostazioni ASP.NET)

[Questa documentazione ha solo scopo di anteprima ed è soggetta a modifiche nelle versioni successive. Gli argomenti vuoti sono inclusi come segnaposto.]

Consente di configurare le impostazioni del modello di processo di ASP.NET in un server Web Microsoft Internet Information Services (IIS). È possibile impostare la sezione processModel solo all'interno del file Machine.config. L'impostazione viene applicata a tutte le applicazioni ASP.NET in esecuzione sul server.

Avviso

Le modifiche apportate all'elemento processModel hanno effetto solo quando si riavvia il processo di lavoro e non subito dopo avere modificato l'impostazione, come accade con gli altri elementi di configurazione.Per ulteriori informazioni, vedere la sezione "Note" più avanti in questo argomento.

<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"
/>

Attributi ed elementi

Nelle sezioni seguenti vengono descritti gli attributi, gli elementi figlio e gli elementi padre.

Attributi

Attributo

Descrizione

autoConfig

Specifica se configurare automaticamente le impostazioni che seguono in modo da ottenere prestazioni ottimali in base alla configurazione del computer:

I valori verranno impostati in base all'articolo della KB disponibile all'indirizzo https://support.microsoft.com/kb/821268/it.

Questo attributo non ha effetto sulle applicazioni client .NET Framework, ma solo sulle applicazioni ASP.NET.

L'attributo autoConfig può essere uno dei valori riportati di seguito.

TermineDefinizione
True Indica che gli attributi elencati in precedenza vengono configurati automaticamente in ASP.NET in modo da ottenere prestazioni ottimali in base alla configurazione del computer.
False Indica che in ASP.NET è necessario utilizzare i valori definiti in modo esplicito per gli attributi elencati in precedenza.

L'impostazione predefinita nel file Machine.config è True, a meno che non sia già presente una configurazione.

clientConnectedCheck

Specifica il tempo di permanenza di una richiesta nella coda prima che in ASP.NET venga eseguito un controllo per stabilire se il client è connesso.

Il valore predefinito è "00:00:05" (5 secondi).

comAuthenticationLevel

Specifica il livello di autenticazione per la sicurezza DCOM.

L'attributo comAuthenticationLevel può essere uno dei valori riportati di seguito.

ValoreDescrizione
Call Specifica che DCOM autentica le credenziali del client quando il server riceve la richiesta all'inizio di ciascuna chiamata a procedura remota.
Connect Specifica che DCOM autentica le credenziali del client solo quando il client stabilisce una connessione al server.
Default Specifica che DCOM determina il livello di autenticazione utilizzando l'algoritmo di negoziazione sicurezza standard.
None Non specifica alcuna autenticazione.
Pkt Specifica che DCOM autentica che tutti i dati ricevuti provengono dal client previsto.I trasporti di datagrammi utilizzano sempre l'autenticazione Pkt.
PktIntegrity Specifica che DCOM autentica e verifica che i dati trasferiti tra il client e il server non vengano modificati.
PktPrivacy Specifica che DCOM autentica tutti i livelli precedenti e crittografa il valore dell'argomento di ciascuna chiamata a procedura remota.

Il valore predefinito è Connect.

comImpersonationLevel

Specifica il livello di autenticazione per la sicurezza COM.

L'attributo comImpersonationLevel può essere uno dei valori riportati di seguito.

ValoreDescrizione
Anonymous Specifica che il client è anonimo per il server.Il server può rappresentare il client, ma il token di rappresentazione non conterrà informazioni.Anonymous non è supportata in .NET Framework versione 1.1.
Default Specifica che DCOM determina il livello di rappresentazione utilizzando l'algoritmo di negoziazione sicurezza standard.
Delegate Specifica che il processo server può rappresentare il contesto di sicurezza del client quando agisce per conto del client.Il processo server può anche creare chiamate in uscita ad altri server, quando agisce per conto del client, utilizzando la funzione di mascheramento.Il server può utilizzare il contesto di sicurezza del client su altri computer per accedere a risorse locali e remote in qualità di client.Quando si utilizza questo livello di rappresentazione, il token di rappresentazione può essere passato tra diversi computer.
Identify Specifica che il server può ottenere l'identità del client.Il server può rappresentare il client per il controllo dell'elenco di controllo di accesso, ma non è in grado di accedere agli oggetti di sistema in qualità di client.
Impersonate Specifica che il processo server può rappresentare il contesto di sicurezza del client quando agisce per conto del client.Questo livello di rappresentazione può essere utilizzato per accedere a risorse locali quali i file.Quando si utilizza questo livello di rappresentazione, il token di rappresentazione non può essere passato all'esterno di un computer.

Il valore predefinito è Impersonate.

cpuMask

Specifica quali processori (CPU) di un server multiprocessore sono adatti a eseguire processi ASP.NET. Il valore specifica uno schema di bit che indica le CPU adatte a eseguire i thread ASP.NET. Il valore esadecimale 0x0d cpuMask rappresenta, ad esempio, il modello di bit 1101. In un computer con quattro CPU, ciò indica che i processi ASP.NET possono essere pianificati nella CPU 0, 2 e 3, ma non nella CPU 1. ASP.NET avvia un processo di lavoro per ogni CPU qualificata. Quando è impostato su true, l'attributo webGarden limita i processi di lavoro al numero di CPU disponibili. Il numero massimo di processi di lavoro consentiti è uguale al numero delle CPU. Quando è impostato su false, l'attributo webGarden viene ignorato e viene eseguito un solo processo di lavoro. Questo è il comportamento predefinito.

Il valore predefinito è "0xffffffff".

enable

Specifica se il modello di processo è attivato.

L'attributo enable può essere uno dei valori riportati di seguito.

ValoreDescrizione
True Indica che il modello di processo è attivato.
False Indica che il modello di processo non è attivato.

Il valore predefinito è true.

idleTimeout

Specifica il periodo di inattività, in formato stringa hr:min:sec, trascorso il quale il processo di lavoro viene interrotto automaticamente.

Il valore predefinito è Infinite.

logLevel

Specifica i tipi di eventi da registrare nel log eventi.

L'attributo logLevel può essere uno dei valori riportati di seguito.

ValoreDescrizione
All Specifica che tutti gli eventi di processo vengono registrati.
Errors Specifica che vengono registrate solo le chiusure impreviste, le chiusure dovute a limiti di memoria e quelle dovute a deadlock.
None Specifica che non viene registrato alcun evento.

Il valore predefinito è Errors.

maxAppDomains

Specifica il numero massimo di domini applicazione consentiti in un solo processo.

Questo attributo può essere minore di o uguale a 2000.

Il valore predefinito è 2000.

maxIoThreads

Consente di configurare il numero massimo di thread di I/O da utilizzare per il processo per ogni CPU. Se, ad esempio, questo valore è 25 in un server con processore singolo, vengono utilizzate le API in fase di esecuzione per impostare il limite del processo su 25. In un server con due processori, il limite è impostato su 50. Il valore di questo attributo deve essere pari o maggiore all'impostazione dell'attributo minFreeThread nella sezione di configurazione httpRuntime.

Per informazioni sui tipi di thread, vedere "Threading Explained" in Improving ASP.NET Performance (informazioni in lingua inglese).

L'intervallo per questo attributo è compreso tra 5 e 100.

Il valore predefinito è 20.

maxWorkerThreads

Configura il numero massimo di thread di lavoro da utilizzare per il processo per ogni CPU. Se, ad esempio, questo valore è 25 in un server con processore singolo, vengono utilizzate le API in fase di esecuzione per impostare il limite del processo su 25. In un server con due processori, il limite è impostato su 50. Il valore di questo attributo deve essere pari o maggiore all'impostazione dell'attributo minFreeThread nella sezione di configurazione httpRuntime.

Per informazioni sui tipi di thread, vedere "Threading Explained" in Improving ASP.NET Performance (informazioni in lingua inglese).

L'intervallo per questo attributo è compreso tra 5 e 100.

Il valore predefinito è 20.

memoryLimit

Specifica la dimensione di memoria massima consentita, come percentuale della memoria totale del sistema, che può essere utilizzata per il processo di lavoro prima che in ASP.NET venga avviato un nuovo processo e vengano riassegnate le richieste esistenti.

Il valore predefinito è 60.

minIoThreads

Consente di configurare il numero minimo di thread di I/O da utilizzare per il processo per ogni CPU. Vedere anche maxIoThreads.

Per informazioni sui tipi di thread, vedere "Threading Explained" in Improving ASP.NET Performance (informazioni in lingua inglese).

Il valore predefinito è 1.

minWorkerThreads

Configura il numero minimo di thread di lavoro da utilizzare per il processo per ogni CPU. Vedere anche maxWorkerThreads.

Per informazioni sui tipi di thread, vedere "Threading Explained" in Improving ASP.NET Performance (informazioni in lingua inglese).

Il valore predefinito è 1.

password

Se presente (e in combinazione con userName), questo attributo fa in modo che il processo di lavoro venga eseguito con l'identità Microsoft Windows configurata. Per ulteriori informazioni sui nomi speciali System e Machine, che non richiedono una password, e per informazioni sulla memorizzazione delle credenziali crittografate dei processi di lavoro nel Registro di sistema, vedere userName.

NoteNote
L'archiviazione delle credenziali in un file di configurazione comporta rischi di sicurezza.Per ulteriori informazioni, vedere "Memorizzazione di un nome utente e di una password nel Registro di sistema" più avanti in questo documento.

Il valore predefinito è AutoGenerate.

pingFrequency

Specifica l'intervallo di tempo, nel formato del modello di processo standard (hr:min:sec), trascorso il quale l'estensione ISAPI effettua il ping del processo di lavoro per verificare se sia in esecuzione. Se non è in esecuzione per l'intervallo pingTimeout, il processo di lavoro viene riavviato.

Il valore predefinito è Infinite.

pingTimeout

Specifica l'intervallo di tempo, nel formato del modello di processo standard (hr:min:sec), trascorso il quale un processo di lavoro bloccato viene riavviato. Le estensioni ISAPI eseguono il ping del processo di lavoro nell'intervallo pingFrequency. Se il processo di lavoro non risponde entro l'intervallo pingTimeout, viene riavviato.

Il valore predefinito è Infinite.

requestLimit

Specifica il numero di richieste consentite prima che in ASP.NET venga automaticamente avviato un nuovo processo di lavoro che vada a sostituire quello corrente.

Il valore predefinito è Infinite.

requestQueueLimit

Specifica il numero di richieste che possono essere contenute nella coda prima che ASP.NET inizi a restituire l'errore "503 – Server occupato" alle nuove richieste.

Il valore predefinito è 5000.

responseDeadlockInterval

Specifica l'intervallo di tempo, nel formato del modello di processo standard (hr:min:sec), trascorso il quale il processo verrà riavviato, se si verificano le condizioni seguenti:

  • Esistono richieste in coda.

  • Non c'è stata alcuna risposta durante questo intervallo.

Il valore predefinito è "0:03:00" (3 minuti).

responseRestartDeadlockInterval

Questo attributo non viene più utilizzato in ASP.NET e viene fornito esclusivamente per questioni di compatibilità. Non genera errori di configurazione se è già presente in un file di configurazione. Tutte le operazioni di riciclaggio in caso di deadlock sono ora controllate dall'attributo responseDeadlockInterval.

Il valore predefinito è "0:03:00" (3 minuti).

restartQueueLimit

Specifica il numero massimo di richieste che vengono accodate in attesa del riavvio del processo di lavoro dopo un'interruzione non standard. Questa impostazione non è valida nel caso di un arresto regolare o di un riavvio standard.

Il valore predefinito è 10.

serverErrorMessageFile

Specifica il contenuto di un file da utilizzare al posto del messaggio predefinito "Server non disponibile", in caso di errore irreversibile. Il percorso è relativo al file Machine.config oppure può essere assoluto. Se questo attributo non è presente, verrà utilizzato il messaggio predefinito "Server non disponibile".

shutdownTimeout

Specifica il numero di minuti consentito perché il processo di lavoro si arresti da solo. Alla scadenza del timeout, il processo di lavoro viene interrotto. Il tempo è espresso nel formato stringa hr:min:sec.

Il valore predefinito è "0:00:05" (5 secondi).

timeout

Specifica il numero di minuti di attesa prima dell'avvio di un nuovo processo di lavoro che vada a sostituire quello corrente.

Il valore predefinito è Infinite.

userName

Specifica che in ASP.NET il processo di lavoro verrà eseguito con un'identità Windows diversa da quella utilizzata dall'identità del processo predefinita. Per impostazione predefinita, questo attributo è impostato su Machine e il processo viene eseguito con un account utente denominato ASPNET creato automaticamente durante l'installazione di ASP.NET. La password per l'account ASPNET viene generata in modo crittografato durante l'installazione. Se in questo attributo e nell'attributo password vengono presentate credenziali valide, il processo viene eseguito con l'account specificato. Un altro valore per userName è System, con la password AutoGenerate, che esegue il processo come account amministrativo e garantisce privilegi amministrativi a tutto il codice utente ASP.NET eseguito nel processo. Per informazioni sull'utilizzo di ASP.NET su un server che funge da controller di dominio, vedere la sezione "Note" più avanti in questo capitolo.

NoteNote
Questo attributo, e l'attributo password, sono memorizzati in testo non crittografato nel file di configurazione.Sebbene IIS non trasmetta file con estensione config in risposta a una richiesta di un agente utente, è possibile leggere i file di configurazione in altro modo.Un file di configurazione, ad esempio, può essere letto da un utente autenticato con le credenziali appropriate nel dominio del server.Per ragioni di sicurezza, la sezione processModel supporta la memorizzazione degli attributi userName e password crittografati nel Registro di sistema.Le credenziali devono essere in formato REG_BINARY e crittografate tramite le apposite funzioni DPAPI di Windows 2000 e Windows XP.Per ulteriori informazioni, vedere "Memorizzazione di un nome utente e di una password nel Registro di sistema" più avanti in questo documento.

Il valore predefinito è "machine".

webGarden

Quando viene utilizzato insieme all'attributo cpuMask, controlla l'affinità della CPU. Un server Web multiprocessore viene definito Web garden.

L'attributo webGarden può essere uno dei valori riportati di seguito.

ValoreDescrizione
True Indica che l'attributo cpuMask viene utilizzato per specificare quali sono le CPU adatte per eseguire processi ASP.NET.
False Indica che l'utilizzo della CPU è pianificato dal sistema operativo Windows.L'attributo cpuMask viene ignorato e viene eseguito un solo processo di lavoro.

Il valore predefinito è False.

Elementi figlio

Nessuno.

Elementi padre

Elemento

Descrizione

system.web

Specifica l'elemento di primo livello per la sezione di configurazione ASP.NET e contiene gli elementi che consentono di configurare le applicazioni Web ASP.NET e di controllarne il comportamento.

Note

Il sistema di configurazione del codice gestito non legge le impostazioni di configurazione processModel . Tali impostazioni vengono, invece, lette direttamente dalla DLL non gestita aspnet_isapi.dll. Le modifiche apportate a questa sezione non vengono applicate fino a quando il processo di lavoro IIS non viene riavviato.

Quando si esegue ASP.NET con IIS versione 6 in modalità nativa, viene utilizzato il modello di processo di IIS 6 e alcuni attributi nella sezione processModel vengono ignorati. Sono comunque validi gli attributi riportati di seguito:

  • autoConfig

  • maxIoThreads

  • maxWorkerThreads

  • minIoThreads

  • minWorkerThreads

  • requestQueueLimit

  • responseDeadlockInterval

Per informazioni sul modello di processo IIS 7, vedere Process Model Settings for an Application Pool .

Per configurare l'identità, i cicli e altri valori del modello di processo in IIS 6.0, utilizzare l'interfaccia utente di Gestione servizi Internet per configurare il processo di lavoro di IIS per l'applicazione in uso.

Nota

ASP.NET 2.0 non può essere utilizzato quando si configura IIS 6 per l'esecuzione di ASP.NET in modalità di isolamento IIS 5.0.

I valori di tempo sono nel formato "ore:minuti:secondi". Se viene specificato un numero singolo senza due punti, si presume che si tratti di minuti. Pertanto timeout="4" equivale a timeout="00:04:00".

Se un'applicazione ASP.NET provoca il riavvio del processo di lavoro di ASP.NET (aspnet_wp.exe in Windows 2000 e Windows XP Professional, w3wp.exe in Windows Server 2003) con un messaggio di errore che indica che il riavvio è stato eseguito per un sospetto stato di deadlock, è necessario aumentare il valore dell'attributo responseDeadlockInterval.

Controller di dominio e account ASPNET locale

Se si installa .NET Framework versione 1.1 su un controller di dominio, l'account ASPNET locale non viene creato e le applicazioni ASP.NET vengono eseguite sotto altre identità, come illustrato di seguito:

  • Nei controller di dominio che eseguono Windows 2000 le applicazioni ASP.NET vengono eseguite sotto l'identità IWAM_nomecomputer.

  • Nei controller di dominio che eseguono Windows Server 2003 le applicazioni ASP.NET vengono eseguite sotto l'identità NETWORK SERVICE, indipendentemente dalla modalità di isolamento IIS.

In altre circostanze, se si esegue ASP.NET su un controller di dominio, è necessario eseguire operazioni aggiuntive affinché l'installazione funzioni in modo corretto. Per ulteriori informazioni sull'esecuzione di .NET Framework versione 1.1 in un controller di dominio, vedere la pagina di ricerca Knowledge Base (KB) e visualizzare l'articolo Q824308, "All'account IWAM non viene concedere il privilegio impersonate per ASP.NET 1.1 sopra un controller di dominio di Windows 2000 con SP4". Per ulteriori informazioni sull'esecuzione di .NET Framework versione 1.0 in un controller di dominio, vedere la pagina di ricerca Knowledge Base (KB) e visualizzare l'articolo Q315158, "ASP.NET non funziona con l'account ASPNET predefinito in un controller di dominio".

Memorizzazione di un nome utente e di una password nel Registro di sistema

Per crittografare il nome utente e la password e memorizzarli nel Registro di sistema, impostare gli attributi userName e password come indicato nell'esempio seguente:

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

La parte di stringa che segue la parola chiave registry, e che precede la virgola (,), indica il nome della chiave del Registro di sistema aperta da ASP.NET. La parte di stringa che segue la virgola (,) include un solo nome di valore di stringa da cui in ASP.NET verranno lette le credenziali. La virgola (,) è obbligatoria e le credenziali devono essere memorizzate nell'hive HKLM. Se il formato di configurazione non è corretto, il processo di lavoro non verrà avviato e seguirà il percorso corrente del codice di errore per la creazione di account.

Le credenziali devono essere in formato REG_BINARY e contenere l'output di una chiamata alla funzione dell'API di Windows CryptProtectData. È possibile creare le credenziali crittografate e memorizzarle nel Registro di sistema utilizzando Aspnet_setreg.exe. Tale file utilizza CryptProtectData per eseguire la crittografia. Per eseguire il download di Aspnet_setreg.exe, completo di codice sorgente Microsoft Visual C++ e documentazione, visitare il sito Web ASP.NET ed eseguire la ricerca di "aspnet_setreg".

È necessario configurare l'accesso alla chiave in cui sono memorizzate le credenziali crittografate in modo che sia disponibile solo per i gruppi Administrators e SYSTEM. Poiché la chiave verrà letta dal processo ASP.NET in esecuzione come SYSTEM, è necessario impostare le autorizzazioni seguenti:

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

In questo modo i dati saranno protetti come descritto di seguito:

  • Per l'accesso alle autorizzazioni ACL sarà necessario appartenere al gruppo Administrators.

  • Eventuali intrusi dovranno eseguire codice sul server (CryptUnprotectData) per recuperare le credenziali dell'account.

Configurazione predefinita

L'elemento processModel predefinito riportato di seguito non viene configurato in modo esplicito nel file Machine.config o nel file Web.config radice. Si tratta, tuttavia, della configurazione predefinita restituita dall'applicazione.

<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" 
/>

Nel file Machine.config in .NET Framework versioni 1.0 e 1.1 viene configurato l'elemento processModel predefinito riportato di seguito.

<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"
        />

Informazioni sull'elemento

Gestore della sezione di configurazione

ProcessModelSection

Membro di configurazione

ProcessModel

Percorsi configurabili

Machine.config

Requisiti

Microsoft Internet Information Services (IIS) versione 5.0, 5.1 o 6.0

.NET Framework versione 1.0, 1.1 o 2.0

Microsoft Visual Studio 2003 o Visual Studio 2005

Vedere anche

Attività

How to: Configure Specific Folders Using Location Settings

How to: Lock ASP.NET Configuration Settings

Riferimenti

Elemento system.web (schema delle impostazioni ASP.NET)

Elemento configuration (schema delle impostazioni generali)

System.Configuration

System.Web.Configuration

ProcessModel

ProcessModelSection

Concetti

Configuring ASP.NET Process Identity

ASP.NET Configuration File Hierarchy

Securing Configuration

Configuration Inheritance

Altre risorse

Impostazioni di configurazione generali (ASP.NET)

Miglioramento delle prestazioni di ASP.NET

Impostazioni di configurazione di ASP.NET

Configuring ASP.NET Applications

ASP.NET Configuration Files

ASP.NET Configuration API