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


Nel presente articolo viene illustrata una versione beta di un prodotto Microsoft. Le informazioni contenute in questo articolo vengono fornite "nello stato in cui si trovano" e sono soggette a modifiche senza preavviso.

Per questo prodotto beta Microsoft non fornisce alcun tipo di supporto formale. Per informazioni su come ottenere supporto per una versione beta, consultare la documentazione fornita con i file del prodotto beta oppure visitare il sito Web da cui la versione del prodotto è stata scaricata.




Per la versione per Microsoft Visual Basic .NET di questo articolo, vedere 307997 .

CONTENUTO DELL'ATTIVITÀ

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 filesia 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à

ID articolo: 308001 - Ultima revisione: 07 apr 2003 - Revisione: 1

Feedback