2010-04-17 1 views

risposta

25

1. Ogni pool di applicazioni è equivalente a un AppDomain .Net?

No, un pool di applicazioni può avere più AppDomain. Ogni AppDomain rappresenta una singola applicazione ASP.NET in esecuzione. Molte applicazioni ASP.NET possono appartenere a un singolo pool di applicazioni.

2. O è equivalente a un processo .Net?

Non proprio. Vedi sotto.

3. In che modo il pool di applicazioni è correlato a IIS w3wp.exe?

Un pool di applicazioni rappresenta un numero limitato di processi di lavoro che può ospitare un numero potenzialmente grande di applicazioni. Questo è simile al modo in cui un pool di connessioni SQL condivide un numero limitato di connessioni tra un numero arbitrario di richieste.

Per impostazione predefinita, un pool di applicazioni ottiene un processo di lavoro (w3wp.exe) e di solito è meglio lasciare questa impostazione da sola a meno che non si sappia cosa si sta facendo. Ancora, un pool di applicazioni può essere configurato per utilizzare un numero qualsiasi di processi.

Il processo di lavoro è in realtà la risorsa che viene raggruppata qui, non l'AppDomain. Ci sarà sempre lo stesso numero di AppDomain in quanto vi sono le applicazioni ASP.NET (a meno che non ci si trovi nel mezzo dello spegnimento o che un'applicazione crei i propri AppDomain), ma il numero dei processi di lavoro è indipendente; un pool di applicazioni offre un numero specifico di processi di lavoro per gestire le richieste per un numero specifico di domini dell'app.

Un'impostazione di 1 (impostazione predefinita) per il numero di processi di lavoro in un pool di applicazioni indica che tutte le applicazioni/domini applicazioni nel pool condividono lo stesso processo di lavoro.

5

È una semplificazione eccessiva dirlo in questo modo ma il modo migliore di pensarci è che l'AppPool è un pool di AppDomains. Tutti questi AppDomain vengono eseguiti all'interno di un singolo processo di lavoro (w3wp.exe).

+0

Grazie Andrea. Potresti anche aggiungere, quando viene creato il pool di applicazioni? in che modo aiuta a mettere la tua applicazione web sotto un pool? – shahkalpesh

+0

@shahkalpesh: in IIS6 + non penso possa avere un'app che non si trova in un pool di app. Potresti anche trovare utile questo link (http://weblogs.asp.net/owscott/archive/2007/09/02/application-vs-appdomain.aspx) – R0MANARMY

1

So che questo è un vecchio post, ma penso che questo sia un buon accento:

1 pool di applicazioni (IIS) = 1 Request Queue (in HTTP.SYS) + 1 o più istanze di w3wp.exe .

2

Un'altra cosa importante da ricordare è Application Security.

Nelle versioni precedenti di IIS, i processi di lavoro sono stati eseguiti come LocalSystem, un account potente con privilegi di amministratore di sistema sul server.Poiché LocalSystem ha accesso a quasi tutte le risorse del sistema operativo, questo ha causato implicazioni sulla sicurezza. In IIS 6.0 (pool di applicazioni introdotto), è possibile impostare l'identità del processo di lavoro a livello del pool di applicazioni. L'identità di un pool di applicazioni è l'account con cui viene eseguito il processo di lavoro del pool di applicazioni. Per impostazione predefinita, i pool di applicazioni operano con l'account NetworkService, che dispone di diritti di accesso utente di basso livello.

Eseguendo il processo di lavoro utilizzando un account con privilegi molto bassi come NetworkService, è possibile ridurre la vulnerabilità della sicurezza. Tuttavia, utilizzando IIS Manager, è possibile configurare il pool di applicazioni per l'esecuzione come uno dei seguenti account predefiniti:

NetworkService 
LocalSystem 
LocalService