Aggiunta di gestori <>
Panoramica
L'elemento <add>
<handlers>
della raccolta aggiunge un gestore all'elenco di gestori HTTP per Internet Information Services (IIS) 7.
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 | L'elemento <add> non è stato modificato in IIS 8.0. |
IIS 7,5 | L'elemento <add> non è stato modificato in IIS 7.5. |
IIS 7.0 | L'elemento <add> <handlers> della raccolta è stato introdotto in IIS 7.0. |
IIS 6.0 | N/D |
Installazione
L'elemento <add>
<handlers>
della raccolta è incluso nell'installazione predefinita di IIS 7.
Procedure
Come creare un mapping di un gestore per un gestore ASP.NET in un'applicazione IIS 7 in esecuzione in modalità integrata
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 fare clic sulla connessione server a cui si vuole aggiungere il modulo nativo.
Nel riquadro Home fare doppio clic su Mapping gestore.
Nel riquadro Azioni fare clic su Aggiungi gestore gestito...
Nella finestra di dialogo Aggiungi gestore gestito specificare quanto segue:
Percorso richiesta. Nome file o estensione del nome file di cui eseguire il mapping.
Type. Nome del tipo (classe) del gestore gestito. Se il gestore è definito nelle cartelle app_code o bin dell'applicazione, il nome del tipo verrà visualizzato nell'elenco a discesa.
Nome. Nome descrittivo.
Fare clic su OK per chiudere la finestra di dialogo Aggiungi gestore gestito .
Come creare un mapping del gestore FastCGI
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 fare clic sul nome del server per cui si desidera configurare i mapping dei gestori FastCGI.
Nel riquadro Home fare doppio clic su Mapping gestore.
Nel riquadro Azioni fare clic su Aggiungi mapping moduli...
Nota
Per il corretto funzionamento dei passaggi successivi, è necessario avere già installato file binari che eseguiranno il percorso del file o l'estensione del nome file specificata. Questo esempio usa un'implementazione PHP disponibile nel sito Web Microsoft.
Digitare l'estensione del nome file, ad esempio .php nella casella Percorso richiesta , fare clic su FastCGIModule nell'elenco a discesa Modulo , digitare il percorso del motore di scripting (in questo esempio PHP-CGI.exe) nella casella Eseguibile e quindi fare clic su OK.
Nella finestra di dialogo Aggiungi mapping moduli fare clic su Sì.
Configurazione
Attributi
Attributo | Descrizione | ||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
allowPathInfo |
Attributo booleano facoltativo. Specifica se il gestore elabora le informazioni complete sul percorso in un URI, ad esempio contoso/marketing/imageGallery.aspx. Se il valore è true, il gestore elabora il percorso completo, contoso/marketing/imageGallery. Se il valore è false, il gestore elabora solo l'ultima sezione del percorso, /imageGallery. Il valore predefinito è false . |
||||||||||||||
modules |
Attributo stringa facoltativo. Specifica il nome del modulo o dei moduli a cui si desidera eseguire il mapping del nome file o del nome file con estensione. Se si specificano più valori, separare i valori con una virgola (,). Il valore predefinito è ManagedPipelineHandler . |
||||||||||||||
name |
Attributo stringa obbligatorio. Specifica il nome univoco del mapping del gestore. |
||||||||||||||
path |
Attributo stringa obbligatorio. Specifica il nome file o l'estensione del nome file per cui si applica il mapping del gestore. |
||||||||||||||
preCondition |
Attributo stringa facoltativo. Specifica le condizioni in cui verrà eseguito il gestore. L'attributo preCondition può essere uno o più dei valori possibili seguenti. Se si specificano più valori, separare i valori con una virgola (,).
|
||||||||||||||
requireAccess |
Attributo di enumerazione facoltativo. Specifica il tipo di accesso richiesto da un gestore alla risorsa. L'attributo requireAccess può essere uno o più dei valori possibili seguenti. Se si specificano più valori, separare i valori con una virgola (,). Il valore predefinito è Script .
|
||||||||||||||
resourceType |
Attributo stringa facoltativo. Specifica il tipo di risorsa a cui si applica il mapping del gestore. L'attributo resourceType può essere uno dei valori possibili seguenti. Il valore predefinito è Unspecified .
|
||||||||||||||
responseBufferLimit |
Attributo uint facoltativo. Specifica le dimensioni massime, in byte, del buffer di risposta per un gestore di richieste. Il valore predefinito è 4194304 byte. |
||||||||||||||
scriptProcessor |
Attributo stringa facoltativo. Specifica il percorso fisico dell'estensione ISAPI .dll file o CGI (Common Gateway Interface) .exe file che elabora la richiesta. L'attributo scriptProcessor è obbligatorio solo per i mapping dei gestori della mappa di script. Quando si esegue il mapping di un gestore a un'estensione ISAPI, è necessario specificare ISAPIModule per l'attributo modules. Quando si esegue il mapping di un gestore a un file CGI, è necessario specificare CGIModule per l'attributo modules. |
||||||||||||||
type |
Attributo stringa facoltativo. Specifica il percorso dello spazio dei nomi di un gestore gestito. L'attributo type è obbligatorio solo per i gestori gestiti. |
||||||||||||||
verb |
Attributo stringa obbligatorio. Specifica i verbi HTTP per i quali viene applicato il mapping del gestore. |
Elementi figlio
Nessuno.
Esempio di configurazione
L'esempio seguente contiene due <add>
elementi che definiscono i mapping dei gestori. Il primo <add>
elemento definisce un gestore SampleHandler per un'applicazione Web in esecuzione in modalità integrata IIS 7. Se si aggiunge l'assembly del gestore alla directory app_code per l'applicazione Web, non è necessario includere il nome dell'assembly nel valore per l'attributo type . Il secondo <add>
elemento definisce un mapping per le richieste PHP che usano il modulo FastCGI.
<handlers>
<add name="SampleHandler" verb="*"
path="SampleHandler.new"
type="SampleHandler, SampleHandlerAssembly"
resourceType="Unspecified" />
<add name="PHP-FastCGI" verb="*"
path="*.php"
modules="FastCgiModule"
scriptProcessor="c:\php\php-cgi.exe"
resourceType="Either" />
</handlers>
Codice di esempio
Gli esempi seguenti aggiungono un mapping FastCGI per un modulo PHP, quindi aggiungere un gestore nel sito Web Contoso che elaborerà le richieste PHP.
AppCmd.exe
appcmd.exe set config -section:system.webServer/fastCgi /+"[fullPath='c:\php\php-cgi.exe']" /commit:apphost
appcmd.exe set config "Contoso" -section:system.webServer/handlers /+"[name='PHP-FastCGI',path='*.php',verb='GET,HEAD,POST',modules='FastCgiModule',scriptProcessor='c:\php\php-cgi.exe',resourceType='Either']"
Nota
Questo secondo esempio illustra come aggiungere un nuovo mapping del gestore ASP.NET denominato SampleHandler.new per un URL specifico a un'applicazione Web.
appcmd.exe set config /section:system.webServer/handlers /+[name=SampleHandler',path='SampleHandler.new',verb='*',type='SampleHandler']
C#
using System;
using System.Text;
using Microsoft.Web.Administration;
internal static class Sample
{
private static void Main()
{
using (ServerManager serverManager = new ServerManager())
{
Configuration appHostConfig = serverManager.GetApplicationHostConfiguration();
ConfigurationSection fastCgiSection = appHostConfig.GetSection("system.webServer/fastCgi");
ConfigurationElementCollection fastCgiCollection = fastCgiSection.GetCollection();
ConfigurationElement applicationElement = fastCgiCollection.CreateElement("application");
applicationElement["fullPath"] = @"c:\php\php-cgi.exe";
fastCgiCollection.Add(applicationElement);
Configuration webConfig = serverManager.GetWebConfiguration("Contoso");
ConfigurationSection handlersSection = webConfig.GetSection("system.webServer/handlers");
ConfigurationElementCollection handlersCollection = handlersSection.GetCollection();
ConfigurationElement addElement = handlersCollection.CreateElement("add");
addElement["name"] = @"PHP-FastCGI";
addElement["path"] = @"*.php";
addElement["verb"] = @"GET,HEAD,POST";
addElement["modules"] = @"FastCgiModule";
addElement["scriptProcessor"] = @"c:\php\php-cgi.exe";
addElement["resourceType"] = @"Either";
handlersCollection.AddAt(0, 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 appHostConfig As Configuration = serverManager.GetApplicationHostConfiguration
Dim fastCgiSection As ConfigurationSection = appHostConfig.GetSection("system.webServer/fastCgi")
Dim fastCgiCollection As ConfigurationElementCollection = fastCgiSection.GetCollection
Dim applicationElement As ConfigurationElement = fastCgiCollection.CreateElement("application")
applicationElement("fullPath") = "c:\php\php-cgi.exe"
fastCgiCollection.Add(applicationElement)
Dim webConfig As Configuration = serverManager.GetWebConfiguration("Contoso")
Dim handlersSection As ConfigurationSection = webConfig.GetSection("system.webServer/handlers")
Dim handlersCollection As ConfigurationElementCollection = handlersSection.GetCollection
Dim addElement As ConfigurationElement = handlersCollection.CreateElement("add")
addElement("name") = "PHP-FastCGI"
addElement("path") = "*.php"
addElement("verb") = "GET,HEAD,POST"
addElement("modules") = "FastCgiModule"
addElement("scriptProcessor") = "c:\php\php-cgi.exe"
addElement("resourceType") = "Either"
handlersCollection.AddAt(0, addElement)
serverManager.CommitChanges()
End Sub
End Module
JavaScript
var adminManager = new ActiveXObject('Microsoft.ApplicationHost.WritableAdminManager');
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST";
var fastCgiSection = adminManager.GetAdminSection("system.webServer/fastCgi", "MACHINE/WEBROOT/APPHOST");
var fastCgiCollection = fastCgiSection.Collection;
var applicationElement = fastCgiCollection.CreateNewElement("application");
applicationElement.Properties.Item("fullPath").Value = "c:\\php\\php-cgi.exe";
fastCgiCollection.AddElement(applicationElement);
adminManager.CommitChanges();
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Contoso";
var handlersSection = adminManager.GetAdminSection("system.webServer/handlers", "MACHINE/WEBROOT/APPHOST/Contoso");
var handlersCollection = handlersSection.Collection;
var addElement = handlersCollection.CreateNewElement("add");
addElement.Properties.Item("name").Value = "PHP-FastCGI";
addElement.Properties.Item("path").Value = "*.php";
addElement.Properties.Item("verb").Value = "GET,HEAD,POST";
addElement.Properties.Item("modules").Value = "FastCgiModule";
addElement.Properties.Item("scriptProcessor").Value = "c:\\php\\php-cgi.exe";
addElement.Properties.Item("resourceType").Value = "Either";
handlersCollection.AddElement(addElement, 0);
adminManager.CommitChanges();
VBScript
Set adminManager = createObject("Microsoft.ApplicationHost.WritableAdminManager")
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST"
Set fastCgiSection = adminManager.GetAdminSection("system.webServer/fastCgi", "MACHINE/WEBROOT/APPHOST")
Set fastCgiCollection = fastCgiSection.Collection
Set applicationElement = fastCgiCollection.CreateNewElement("application")
applicationElement.Properties.Item("fullPath").Value = "c:\php\php-cgi.exe"
fastCgiCollection.AddElement applicationElement
adminManager.CommitChanges()
adminManager.CommitPath = "MACHINE/WEBROOT/APPHOST/Contoso"
Set handlersSection = adminManager.GetAdminSection("system.webServer/handlers", "MACHINE/WEBROOT/APPHOST/Contoso")
Set handlersCollection = handlersSection.Collection
Set addElement = handlersCollection.CreateNewElement("add")
addElement.Properties.Item("name").Value = "PHP-FastCGI"
addElement.Properties.Item("path").Value = "*.php"
addElement.Properties.Item("verb").Value = "GET,HEAD,POST"
addElement.Properties.Item("modules").Value = "FastCgiModule"
addElement.Properties.Item("scriptProcessor").Value = "c:\php\php-cgi.exe"
addElement.Properties.Item("resourceType").Value = "Either"
handlersCollection.AddElement addElement, 0
adminManager.CommitChanges()