2 von 2 fanden dies hilfreich - Dieses Thema bewerten.

Gewusst wie: Erstellen von synchronen HTTP-Handlern

In diesem Thema wird der Code für einen HTTP-Handler veranschaulicht, der Anforderungen für Ressourcen in einer ASP.NET-Anwendung synchron verarbeit, deren URL auf .sample endet. In diesem Codebeispiel wird Folgendes veranschaulicht:

  • Der Code für eine HTTP-Handlerklasse. Die Klasse muss die ProcessRequest-Methode und die IsReusable-Eigenschaft implementieren.

  • Die in der Datei Web.config erforderlichen Elemente für das Registrieren des Handlers und die Zuordnung der Dateinamenerweiterung .sample.

  • Das Zuordnen der Dateinamenerweiterung .sample für ASP.NET in Internetinformationsdienste (IIS).

NoteHinweis

ASP.NET Development Server verarbeitet die Anforderung für die neue Ressource nach dem Ändern der Konfigurationsdatei durch Hinzufügen eines Verweises auf den neuen Handler. Weitere Informationen zum Aktivieren von IIS für die Verarbeitung der Anforderung finden Sie in der nachfolgenden Prozedur.

Wenn eine Ressource angefordert wird, deren URL auf .sample endet, leitet der Webserver die Anforderung an ASP.NET weiter. ASP.NET wiederum ruft den HTTP-Handler auf, der eine Antwort zurückgibt. Die Antwort wird vom Handler dynamisch erstellt, es muss keine Datei mit der Dateinamenerweiterung .sample vorhanden sein. Weitere Informationen zur Interaktion von ASP.NET mit dem Webserver finden Sie unter ASP.NET-Lebenszyklus.

So erstellen Sie die benutzerdefinierte HelloWorldHandler-HTTP-Handlerklasse

  1. Erstellen Sie im Verzeichnis App_Code der Website die HelloWorldHandler-Klasse.

  2. Fügen Sie der Klassendatei folgenden Code hinzu:

    Imports System.Web
    
    Public Class HelloWorldHandler
        Implements IHttpHandler
    
        Public Sub ProcessRequest(ByVal context As _
                System.Web.HttpContext) Implements _
                System.Web.IHttpHandler.ProcessRequest
            Dim request As HttpRequest = context.Request
            Dim response As HttpResponse = context.Response
            ' This handler is called whenever a file ending 
            ' in .sample is requested. A file with that extension
            ' does not need to exist.
            response.Write("<html>")
            response.Write("<body>")
            response.Write("<h1>Hello from a synchronous custom HTTP handler.</h1>")
            response.Write("</body>")
            response.Write("</html>")
        End Sub
    
        Public ReadOnly Property IsReusable() As Boolean _
                Implements System.Web.IHttpHandler.IsReusable
            Get
                Return False
            End Get
        End Property
    End Class
    

    using System.Web;
    public class HelloWorldHandler : IHttpHandler
    {
        public HelloWorldHandler()
        {
        }
        public void ProcessRequest(HttpContext context)
        {
            HttpRequest Request = context.Request;
            HttpResponse Response = context.Response;
            // This handler is called whenever a file ending 
            // in .sample is requested. A file with that extension
            // does not need to exist.
            Response.Write("<html>");
            Response.Write("<body>");
            Response.Write("<h1>Hello from a synchronous custom HTTP handler.</h1>");
            Response.Write("</body>");
            Response.Write("</html>");
        }
        public bool IsReusable
        {
            // To enable pooling, return true here.
            // This keeps the handler in memory.
            get { return false; }
        }
    }
    

    Dieser Code implementiert die ProcessRequest-Methode und schreibt eine Zeichenfolge für die Response-Eigenschaft des aktuellen HttpContext-Objekts.

Registrieren eines benutzerdefinierten HTTP-Handlers

Nachdem Sie die benutzerdefinierte HTTP-Handlerklasse erstellt haben, müssen Sie sie in der Datei Web.config der Anwendung registrieren. Dadurch kann ASP.NET beim Empfangen von Anforderungen an Ressourcen, deren URL auf .sample endet, den Handler finden.

So registrieren Sie einen benutzerdefinierten HTTP-Handler in der Datei Web.config

  1. Fügen Sie der Website eine Web.config-Datei hinzu, wenn nicht bereits eine solche vorhanden ist.

  2. Fügen Sie der Datei Web.config das folgende markierte Element hinzu:

    <configuration>
        <system.web>
            <httpHandlers>
                <add verb="*" path="*.sample" 
                      type="HelloWorldHandler"/>
            </httpHandlers>
        </system.web>
    </configuration>
    

    Der Code registriert den benutzerdefinierten Handler nach dem Klassennamen und ordnet die Dateinamenerweiterung diesem Handler zu.

Konfigurieren von IIS 6.0 für eine HTTP-Handlererweiterung

IIS übergibt nur Anforderungen für bestimmte Dateitypen zur Verarbeitung an ASP.NET. Dateien mit den Dateinamenerweiterungen .aspx, .ascx und .asmx sind standardmäßig in IIS 6.0 bereits der ASP.NET ISAPI-Erweiterung (Aspnet_isapi.dll) zugeordnet. Wenn ASP.NET benutzerdefinierte URL-Erweiterungen behandeln soll, müssen Sie die Erweiterungen in IIS zuordnen. Weitere Informationen finden Sie unter ASP.NET-Lebenszyklus.

So ordnen Sie die Dateinamenerweiterung .sample ASP.NET in IIS 6.0 zu

  1. Öffnen Sie den Internetinformationsdienste-Manager (IIS-Manager).

  2. Klicken Sie mit der rechten Maustaste auf den Namen der Anwendung, und klicken Sie anschließend auf Eigenschaften.

    NoteHinweis

    Anweisungen zum Erstellen einer ASP.NET-Anwendung finden Sie unter Gewusst wie: Erstellen und Konfigurieren von lokalen ASP.NET-Websites in IIS.

  3. Klicken Sie auf die Registerkarte Virtuelles Verzeichnis, und klicken Sie dann auf Konfiguration.

  4. Klicken auf der Registerkarte Zuordnungen auf Hinzufügen.

    Es wird das Dialogfeld Hinzufügen/Bearbeiten der Zuordnung von Anwendungserweiterungen angezeigt.

  5. Geben Sie im Feld Ausführbare Datei den Dateinamen Aspnet_isapi.dll ein oder navigieren Sie zu dieser Datei. Die Datei befindet sich standardmäßig am folgenden Speicherort.

    %windows%\Microsoft.NET\Framework\version\
    
    NoteHinweis

    Sie können den vollständigen Pfad und Dateinamen aus anderen Zuordnungen abrufen, z. B. aus der Zuordnung zu ASPX-Dateien.

  6. Geben Sie im Feld Erweiterung die Zeichenfolge .sample ein.

  7. Deaktivieren Sie das Kontrollkästchen Verifizieren, dass Datei existiert.

  8. Klicken Sie auf OK, und schließen dann den IIS-Manager.

Testen des benutzerdefinierten HTTP-Handlers

Nachdem Sie den benutzerdefinierten HTTP-Handler erstellt und registriert haben, können Sie diesen testen, indem Sie eine Ressource mit der Dateinamenerweiterung .sample anfordern.

So testen Sie den benutzerdefinierten HTTP-Handler

  • Geben Sie einen URL in den Browser ein, der auf Ihre Webanwendung zeigt und auf .sample endet, z. B.:

    http://localhost/SampleApplication/test.sample
    

    Der in der HelloWorldHandler-Klasse definierte Text wird angezeigt.

Siehe auch

Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)