HOW TO: Creare un gestore HTTP ASP .NET con Visual C# .NET

Traduzione articoli Traduzione articoli
Identificativo articolo: 308001 - Visualizza i prodotti a cui si riferisce l?articolo.
Questo articolo è stato precedentemente pubblicato con il codice di riferimento I308001
Espandi tutto | Chiudi tutto

In questa pagina

Sommario

La procedura oggetto di questo articolo consente di servirsi di Visual C# .NET per creare un semplice gestore HTTP personalizzato. In questo articolo viene spiegato come creare, installare e configurare il gestore.

Implementare il gestore

  1. Aprire Microsoft Visual Studio .NET. In Visual C# .NET creare un nuovo progetto libreria di classi denominandolo MyHandler.
  2. Impostare un riferimento all'assembly System.Web.dll.
  3. Aggiungere la seguente istruzione alla classe:
    using System.Xml;
  4. Rinominare la classe SyncHandler.cs e modificarne la definizione di conseguenza.
  5. Implementare l'interfaccia IHttpHandler. La definizione della classe si presenterà come segue:
    public class SyncHandler : IHttpHandler
  6. Implementare la proprietà IsReusable e il metodo ProcessRequest dell'interfaccia IHttpHandler. Poiché questo gestore è sincrono, restituire False per la proprietà IsReusable in modo che il gestore non divenga oggetto di pooling.
    public bool IsReusable
    {
       get {return false;}
    }
    
    public void ProcessRequest(HttpContext context)
    {
       context.Response.Write("Hello from custom handler.");
    }
  7. Compilare il progetto.

Installare il gestore

  1. Creare una nuova directory dal nome Handler nella directory C:\Inetpub\Wwwroot.
  2. Creare una sottodirectory Bin nella directory Handler appena creata. Il percorso risultante è C:\Inetpub\Wwwroot\Handler\Bin.
  3. Copiare MyHandler.dll dalla directory del progetto Bin\Debug alla directory C:\Inetpub\Wwwroot\Handler\Bin.
  4. Attenersi alla procedura seguente per contrassegnare la nuova directory Handler come applicazione Web:
    1. Aprire Gestione servizi Internet.
    2. Fare clic con il pulsante destro del mouse sulla directory Handler e scegliere Proprietà.
    3. Nella scheda Directory scegliere Crea.
  5. Attenersi alla procedura seguente per creare un mapping di applicazioni per il gestore. Creare un mapping al file Aspnet_isapi.dll relativamente all'estensione *.sync. A ogni richiesta di un file sync, la richiesta verrà inoltrata ad ASP.NET e verrà eseguito il codice del gestore.
    1. Fare clic con il pulsante destro del mouse sull'applicazione Web Handler e scegliere Proprietà.
    2. Nella scheda Directory scegliere Configurazione.
    3. Scegliere Aggiungi per aggiungere un nuovo mapping.
    4. Nella casella Eseguibile digitare il seguente percorso:
      C:\WINNT\Microsoft.NET\Framework\<n. versione>\Aspnet_isapi.dll
    5. Nella casella Estensione digitare .sync.
    6. Accertarsi che la casella Verifica l'esistenza dei file sia deselezionata, quindi scegliere OK per chiudere la finestra di dialogo Aggiungi/modifica mapping estensioni applicazioni.
    7. Scegliere OK per chiudere le finestre di dialogo Configurazione applicazioni e Proprietà gestore.
  6. Chiudere Gestione servizi Internet.

Configurare il sistema

  1. Nella directory C:\Inetpub\Wwwroot\Handler creare un nuovo file denominato Web.config.
  2. Aggiungere il seguente codice a Web.config:
    <configuration>
       <system.web>
          <httpHandlers>
             <add verb="*" path="*.sync" type="MyHandler.SyncHandler, MyHandler" />
          </httpHandlers>
       </system.web>
    </configuration>
    Nell'attributo verb="*" si fornisce al gestore l'istruzione di elaborare una richiesta che utilizza qualsiasi verbo, ad esempio POST, HEAD, GET e così via. Per fare in modo che il gestore elabori solo le richieste POST, impostare l'attributo nel modo seguente verb="POST".

    Nell'attributo path="*.sync" si fornisce al gestore l'istruzione di elaborare qualsiasi richiesta in arrivo per i file con estensione sync.

    Nell'attributo type="MyHandler.SyncHander, MyHandler" si fornisce al gestore che elabora le richieste l'istruzione di eseguire l'implementazione nello spazio dei nomi MyHandler.SyncHandler e che questa classe risiede nell'assembly MyHandler.

Verificare il modulo

Per verificare il modulo non è necessario che una pagina esista nel file system. Richiedere ad esempio il file Default.sync dell'applicazione Web Handler (http://<NomeComputer>/Handler/Default.sync). Si otterranno i seguenti risultati:
Hello from custom handler.

RIFERIMENTI

Per ulteriori informazioni sui gestori HTTP, fare clic sul numero dell'articolo della Knowledge Base riportato di seguito (gli articoli con prefisso "Q" contengono informazioni in inglese):
307985 BETA-INFO: ASP .NET HTTP Modules and HTTP Handlers Overview













Proprietà

Identificativo articolo: 308001 - Ultima modifica: martedì 8 aprile 2003 - Revisione: 2.0
Le informazioni in questo articolo si applicano a
  • Microsoft ASP .NET Beta 2
  • Microsoft Visual C# .NET 2002 Standard Edition
Chiavi: 
kbhowto kbhowtomaster kbhttpruntime kbgrpdsasp KB308001
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.

Invia suggerimenti

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com