Aggiunta di pool <di applicazioni>
Panoramica
L'elemento <add>
dell'elemento <applicationPools>
controlla le impostazioni di configurazione per un pool di applicazioni IIS 7 e versioni successive. Si crea un <add>
elemento nel file ApplicationHost.config per ogni pool di applicazioni che si desidera eseguire nel server IIS.
L'elemento <add>
può contenere attributi ed elementi figlio che configurano la modalità di elaborazione della pipeline e la versione di .NET Framework usati dai processi di lavoro nel pool di applicazioni per le richieste in ingresso. Questo elemento contiene anche elementi figlio che configurano le impostazioni dell'identità, delle prestazioni e dell'integrità e del riciclo del pool di applicazioni.
Quando si crea un nuovo pool di applicazioni in IIS 7 e versioni successive, è necessario assegnare al pool di applicazioni un nome univoco. Configurare tutte le altre proprietà in base alle esigenze per le applicazioni che usano il pool di applicazioni.
Novità in IIS 7.5 e versioni successive
A partire da IIS 7.5, è possibile configurare un'applicazione per l'avvio automatico usando gli attributi managedRuntimeLoader, CLRConfigFile e startMode dell'elemento <add>
. Questi attributi configurano, rispettivamente, il nome della DLL gestita che fornisce il caricamento di runtime per l'applicazione, il file di configurazione Common Language Runtime per l'applicazione e il tipo di avvio per l'applicazione.
Novità anche in IIS 7.5 e versioni successive è un nuovo ApplicationPoolIdentity
tipo per l'attributo identityType dell'elemento <processModel>
. Questo nuovo tipo di identità è ora l'identità del processo predefinita per le applicazioni e consente di impostare la sicurezza per le aree di contenuto per consentire l'accesso per un pool di applicazioni specifico. A tale scopo, è necessario impostare la sicurezza usando il nome di un pool di applicazioni usando la sintassi "IIS AppPool\DefaultAppPool". Questa identità viene creata in modo dinamico, riducendo in modo significativo l'area di attacco della superficie del server.
Compatibilità
Versione | Note |
---|---|
IIS 10.0 | L'elemento <add> non è stato modificato in IIS 10.0. |
IIS 8,5 | L'elemento <add> non è stato modificato in IIS 8.5. |
IIS 8,0 | Il valore predefinito dell'attributo managedRuntimeVersion è stato modificato in "" e v4.0 è stato aggiunto come valore per managedRuntimeVersion . |
IIS 7,5 | L'elemento <add> dell'elemento <applicationPools> è stato aggiornato in IIS 7.5 per includere gli attributi che consentono di precaricare le applicazioni. |
IIS 7.0 | L'elemento <add> <applicationPools> della raccolta è stato introdotto in IIS 7.0. |
IIS 6.0 | L'insieme <applicationPools> sostituisce parti della proprietà metabase IIsApplicationPools di IIS 6.0. |
Installazione
La <applicationPools>
raccolta è inclusa nell'installazione predefinita di IIS 7 e versioni successive.
Procedure
Come creare un nuovo pool di applicazioni
Aprire Gestione Internet Information Services (IIS):
Se si usa Windows Server 2012 o Windows Server 2012 R2:
- Sulla barra delle applicazioni fare clic su Server Manager, scegliere Strumenti, quindi fare clic su Gestione Internet Information Services (IIS).
Se si usa Windows 8 o Windows 8.1:
- Tenere premuto il tasto Windows, premere la lettera X e quindi fare clic su Pannello di controllo.
- Fare clic su Strumenti di amministrazione, quindi fare doppio clic su Gestione Internet Information Services (IIS).
Se si usa Windows Server 2008 o Windows Server 2008 R2:
- Sulla barra delle applicazioni fare clic su Start, scegliere Strumenti di amministrazione, quindi fare clic su Gestione Internet Information Services (IIS).
Se si usa Windows Vista o Windows 7:
- Sulla barra delle applicazioni fare clic su Start e quindi su Pannello di controllo.
- Fare doppio clic su Strumenti di amministrazione, quindi fare doppio clic su Gestione Internet Information Services (IIS).
Nel riquadro Connessioni espandere il nome del server e quindi fare clic su Pool di applicazioni.
Nel riquadro Azioni fare clic su Aggiungi pool di applicazioni....
Nella finestra di dialogo Aggiungi pool di applicazioni immettere il nome del pool di applicazioni nella casella Nome: nell'elenco a discesa Versione di .NET Framework selezionare la versione di .NET Framework usata dal sito o dall'applicazione, nell'elenco a discesa Modalità pipeline gestita selezionareIntegrato o Classico e quindi fare clic su OK.
Come configurare il pool di applicazioni per un sito o un'applicazione esistente
- Nel riquadro Connessioni espandere Siti e quindi passare al sito Web o all'applicazione da aggiungere al pool di applicazioni.
- Nel riquadro Azioni fare clic su Impostazioni avanzate...
- Nella sezione Generale della finestra di dialogo Impostazioni avanzate fare clic sulla voce Pool di applicazioni e quindi sul pulsante con i puntini di sospensione.
- Nella finestra di dialogo Seleziona pool di applicazioni selezionare il pool di applicazioni dalla casella di riepilogo a discesa Pool di applicazioni, fare clic su OK e quindi fare di nuovo clic su OK .
Configurazione
L'elemento <add>
<applicationPools>
della raccolta è configurabile a livello di server nel file ApplicationHost.config.
Attributi
Attributo | Descrizione | ||||||||
---|---|---|---|---|---|---|---|---|---|
autoStart |
Attributo booleano facoltativo. Se true, indica al servizio pubblicazione Web (W3SVC) che il pool di applicazioni deve essere avviato automaticamente al momento della creazione o all'avvio di IIS. Il valore predefinito è true . |
||||||||
CLRConfigFile |
Valore stringa facoltativo. Specifica il file di configurazione .NET per il pool di applicazioni. Nota: Questo attributo è stato aggiunto in IIS 7.5. Non è previsto alcun valore predefinito. |
||||||||
enable32BitAppOnWin64 |
Attributo booleano facoltativo. Se true, consente l'esecuzione di un'applicazione a 32 bit in un computer che esegue una versione a 64 bit di Windows. Il valore predefinito è false . |
||||||||
enableConfigurationOverride |
Attributo booleano facoltativo. Se true, indica che le impostazioni delegate nei file Web.config verranno elaborate per le applicazioni all'interno del pool di applicazioni. Se false, tutte le impostazioni nei file Web.config verranno ignorate per questo pool di applicazioni. Il valore predefinito è true . |
||||||||
managedPipelineMode |
Attributo di enumerazione facoltativo. Specifica la modalità di elaborazione delle richieste utilizzata per elaborare le richieste per il contenuto gestito. L'attributo managedPipelineMode può essere uno dei valori possibili seguenti.
Integrated . |
||||||||
managedRuntimeLoader |
Attributo stringa facoltativo. Specifica il caricatore gestito da usare per il precaricare il pool di applicazioni. Nota: Questo attributo è stato aggiunto in IIS 7.5. Il valore predefinito è webengine4.dll. |
||||||||
managedRuntimeVersion |
Attributo stringa facoltativo. Specifica la versione CLR da utilizzare dal pool di applicazioni. L'attributo managedRuntimeVersion può essere uno dei valori possibili seguenti.
"" . |
||||||||
name |
Attributo stringa obbligatorio. Specifica un nome univoco per un pool di applicazioni nel server. |
||||||||
passAnonymousToken |
Attributo booleano facoltativo. Se true, il servizio di attivazione dei processi di Windows (WAS) crea e passa un token per l'account utente anonimo IUSR predefinito al modulo di autenticazione anonima. Il modulo di autenticazione anonima usa il token per rappresentare l'account predefinito. Quando PassAnonymousToken è false, il token non verrà passato. Nota: L'account utente anonimo IUSR sostituisce il IIS_MachineName account anonimo. L'account IUSR può essere usato da IIS o da altre applicazioni. Non dispone di alcun privilegio assegnato durante l'installazione. Il valore predefinito è true . |
||||||||
queueLength |
Attributo uint facoltativo. Indica di HTTP.sys il numero di richieste da accodare per un pool di applicazioni prima di rifiutare le richieste future. Il valore predefinito è 1000 .Quando viene superato il valore impostato per questa proprietà, IIS rifiuta le richieste successive con un errore 503. Se l'impostazione loadBalancerCapabilities è true, la connessione viene chiusa anziché rifiutare le richieste con un valore 503. Per altre informazioni su loadBalancerCapabilities, vedere Impostazioni degli errori per un pool di applicazioni. |
||||||||
startMode |
Valore di enumerazione facoltativo. Specifica il tipo di avvio per il pool di applicazioni. Nota: Questo attributo è stato aggiunto in IIS 7.5. L'attributo startMode può essere uno dei valori possibili seguenti.
OnDemand . |
Elementi figlio
Elemento | Descrizione |
---|---|
cpu |
Configura l'affinità della CPU e le azioni della CPU. |
environmentVariables |
Configura una raccolta di variabili di ambiente da passare ai processi di lavoro. |
failure |
Configura le azioni da eseguire in caso di errore di un pool di applicazioni. |
processModel |
Configura gli attributi di gestione dei processi per un pool di applicazioni. |
recycling |
Configura il riciclo del pool di applicazioni. |
Esempio di configurazione
Nell'esempio di configurazione seguente viene usato l'elemento del pool <add>
di applicazioni per creare un nuovo pool di applicazioni denominato Contoso. L'elemento <recycling>
configura la registrazione per il riavvio del pool di applicazioni, l'elemento <periodicRestart>
viene configurato al riavvio del pool di applicazioni e l'elemento <processModel>
configura gli attributi shutdownTimeLimit e startupTimeLimit per l'arresto e l'avvio dei processi di lavoro nel pool di applicazioni per 30 secondi ciascuno. Se vengono superati questi limiti di tempo, IIS termina il processo di lavoro.
<add name="Contoso">
<recycling logEventOnRecycle="Schedule">
<periodicRestart>
<schedule>
<clear />
<add value="03:00:00" />
</schedule>
</periodicRestart>
</recycling>
<processModel identityType="NetworkService" shutdownTimeLimit="00:00:30" startupTimeLimit="00:00:30" />
</add>
Codice di esempio
Gli esempi di codice seguenti aggiungono un pool di applicazioni denominato Contoso al server IIS 7 e versioni successive, quindi impostano il pool di applicazioni su riciclo giornaliero alle 3:00.
AppCmd.exe
appcmd.exe set config -section:system.applicationHost/applicationPools /+"[name='Contoso']" /commit:apphost
appcmd.exe set config -section:system.applicationHost/applicationPools /+"[name='Contoso'].recycling.periodicRestart.schedule.[value='03:00:00']" /commit:apphost
È anche possibile usare la sintassi seguente:
appcmd.exe add apppool /name:"Contoso"
appcmd.exe set config -section:system.applicationHost/applicationPools /+"[name='Contoso'].recycling.periodicRestart.schedule.[value='03:00:00']" /commit:apphost
Nota
È necessario assicurarsi di impostare il parametro commit su apphost
quando si usa AppCmd.exe per configurare queste impostazioni. In questo modo le impostazioni di configurazione vengono confermate nella sezione relativa al percorso appropriato nel file 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 applicationPoolsSection = config.GetSection("system.applicationHost/applicationPools");
ConfigurationElementCollection applicationPoolsCollection = applicationPoolsSection.GetCollection();
ConfigurationElement addElement = applicationPoolsCollection.CreateElement("add");
addElement["name"] = @"Contoso";
ConfigurationElement recyclingElement = addElement.GetChildElement("recycling");
ConfigurationElement periodicRestartElement = recyclingElement.GetChildElement("periodicRestart");
ConfigurationElementCollection scheduleCollection = periodicRestartElement.GetCollection("schedule");
ConfigurationElement addElement1 = scheduleCollection.CreateElement("add");
addElement1["value"] = TimeSpan.Parse("03:00:00");
scheduleCollection.Add(addElement1);
applicationPoolsCollection.Add(addElement);
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 applicationPoolsSection As ConfigurationSection = config.GetSection("system.applicationHost/applicationPools")
Dim applicationPoolsCollection As ConfigurationElementCollection = applicationPoolsSection.GetCollection
Dim addElement As ConfigurationElement = applicationPoolsCollection.CreateElement("add")
addElement("name") = "Contoso"
Dim recyclingElement As ConfigurationElement = addElement.GetChildElement("recycling")
Dim periodicRestartElement As ConfigurationElement = recyclingElement.GetChildElement("periodicRestart")
Dim scheduleCollection As ConfigurationElementCollection = periodicRestartElement.GetCollection("schedule")
Dim addElement1 As ConfigurationElement = scheduleCollection.CreateElement("add")
addElement1("value") = TimeSpan.Parse("03:00:00")
scheduleCollection.Add(addElement1)
applicationPoolsCollection.Add(addElement)
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var applicationPoolsSection = adminManager.GetAdminSection("system.applicationHost/applicationPools", "MACHINE/WEBROOT/APPHOST");
var applicationPoolsCollection = applicationPoolsSection.Collection;
var addElement = applicationPoolsCollection.CreateNewElement("add");
addElement.Properties.Item("name").Value = "Contoso";
var recyclingElement = addElement.ChildElements.Item("recycling");
var periodicRestartElement = recyclingElement.ChildElements.Item("periodicRestart");
var scheduleCollection = periodicRestartElement.ChildElements.Item("schedule").Collection;
var addElement1 = scheduleCollection.CreateNewElement("add");
addElement1.Properties.Item("value").Value = "03:00:00";
scheduleCollection.AddElement(addElement1);
applicationPoolsCollection.AddElement(addElement);
adminManager.CommitChanges();
VBScript
Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set applicationPoolsSection = adminManager.GetAdminSection("system.applicationHost/applicationPools", "MACHINE/WEBROOT/APPHOST")
Set applicationPoolsCollection = applicationPoolsSection.Collection
Set addElement = applicationPoolsCollection.CreateNewElement("add")
addElement.Properties.Item("name").Value = "Contoso"
Set recyclingElement = addElement.ChildElements.Item("recycling")
Set periodicRestartElement = recyclingElement.ChildElements.Item("periodicRestart")
Set scheduleCollection = periodicRestartElement.ChildElements.Item("schedule").Collection
Set addElement1 = scheduleCollection.CreateNewElement("add")
addElement1.Properties.Item("value").Value = "03:00:00"
scheduleCollection.AddElement(addElement1)
applicationPoolsCollection.AddElement(addElement)
adminManager.CommitChanges()