webentwicklung-frage-antwort-db.com.de

Was ist ein HttpHandler in ASP.NET?

Was ist ein HttpHandler in ASP.NET? Warum und wie wird es verwendet?

60
Nikola Stjelja

In den einfachsten Begriffen ist ein ASP.NET-HttpHandler eine Klasse, die die System.Web.IHttpHandler-Schnittstelle implementiert. 

ASP.NET-HTTP-Handler sind für das Abfangen von Anforderungen verantwortlich, die an Ihren ASP.NET-Webanwendungsserver gesendet werden. Sie werden als Prozesse als Antwort auf eine Anforderung an die ASP.NET-Site ausgeführt. Der häufigste Handler ist ein ASP.NET-Seitenhandler, der ASPX-Dateien verarbeitet. Wenn Benutzer eine ASPX-Datei anfordern, wird die Anforderung von der Seite über den Seitenhandler verarbeitet. 

ASP.NET bietet einige default HTTP-Handler an:

  • Seitenhandler (ASPX): behandelt Webseiten
  • User Control Handler (.ascx): Handelt Web-Benutzersteuerungsseiten
  • Web Service Handler (.asmx): behandelt Web-Service-Seiten
  • Trace-Handler (trace.axd): Verarbeitet die Trace-Funktionalität

Sie können eigene benutzerdefinierte HTTP-Handler erstellen, mit denen benutzerdefinierte Ausgaben für den Browser gerendert werden. Typische Szenarien für HTTP-Handler in ASP.NET sind beispielsweise

  • lieferung von dynamisch erstellten Bildern (z. B. Diagrammen) oder Bildern mit geänderter Größe.
  • RSS-Feeds, die RSS-formatiertes XML ausgeben

Sie implementieren die IHttpHandler-Schnittstelle zum Erstellen eines synchronen Handlers und die IHttpAsyncHandler-Schnittstelle zum Erstellen eines asynchronen Handlers. Für die Schnittstellen müssen Sie die ProcessRequest-Methode und die IsReusable-Eigenschaft implementieren.

Die ProcessRequest-Methode übernimmt die eigentliche Verarbeitung für Anforderungen, während die boolesche IsReusable-Eigenschaft angibt, ob Ihr Handler zur Wiederverwendung zusammengefasst werden kann (um die Leistung zu erhöhen) oder ob für jede Anforderung ein neuer Handler erforderlich ist.

74
splattne

Eine HttpHandler (oder IHttpHandler) ist grundsätzlich alles, was für die Bereitstellung von Inhalten verantwortlich ist. Eine ASP.NET-Seite (ASPX) ist eine Art Handler.

Sie können beispielsweise eigene Formulare erstellen, um Bilder usw. aus einer Datenbank und nicht vom Webserver selbst zu liefern, oder um einen einfachen POX-Dienst zu schreiben (anstatt SOAP/WCF/etc).

14
Marc Gravell

HttpHandler-Beispiel,

HTTP-Handler in ASP.NET 2.0

Ein Handler ist dafür verantwortlich, Anforderungen eines Browsers zu erfüllen. Anfragen, die ein Browser verwaltet, werden entweder über die Dateierweiterung oder durch direkten Aufruf des Handlers behandelt. Die Low-Level-Request- und-Response-API für eingehende HTTP-Anforderungen ist HTTP-Handler in Asp.Net. Alle Handler implementieren die IHttpHandler-Schnittstelle, die sich im Namespace System.Web befindet. Handler sind etwas analog zu den ISAPI-Erweiterungen (Internet Server Application Programming Interface).

Sie implementieren die IHttpHandler-Schnittstelle zum Erstellen eines synchronen Handlers und die IHttpAsyncHandler-Schnittstelle zum Erstellen eines asynchronen Handlers. Für die Schnittstellen müssen Sie die ProcessRequest-Methode und die IsReusable-Eigenschaft implementieren. Die ProcessRequest-Methode verarbeitet die eigentliche Verarbeitung für Anforderungen, während die Boolean-Eigenschaft IsReusable angibt, ob der Handler zur Wiederverwendung zur Verbesserung der Leistung zusammengefasst werden kann oder ob für jede Anforderung ein neuer Handler erforderlich ist.

Die Dateierweiterung .ashx ist für benutzerdefinierte Handler reserviert. Wenn Sie einen benutzerdefinierten Handler mit der Dateinamenerweiterung ".ashx" erstellen, wird er automatisch in IIS und ASP.NET registriert. Wenn Sie sich für eine alternative Dateierweiterung entscheiden, müssen Sie die Erweiterung in IIS und ASP.NET registrieren. Die Verwendung einer anderen Erweiterung als .ashx hat den Vorteil, dass Sie einem Handler mehrere Dateierweiterungen zuweisen können.

HTTP-Handler konfigurieren

Der Konfigurationsabschnitt-Handler ist für die Zuordnung eingehender URLs zur Klasse IHttpHandler oder IHttpHandlerFactory verantwortlich. Es kann auf Computer-, Standort- oder Anwendungsebene deklariert werden. Unterverzeichnisse erben diese Einstellungen. _ Administratoren verwenden die Tag-Direktive, um den Abschnitt zu konfigurieren. Direktiven werden in einer Reihenfolge von oben nach unten interpretiert und verarbeitet. Verwenden Sie für den Abschnittshandler die folgende Syntax:

HTTP-Handler erstellen

Um einen HTTP-Handler zu erstellen, müssen Sie die IHttpHandler-Schnittstelle implementieren. Die IHttpHandler-Schnittstelle verfügt über eine Methode und eine Eigenschaft mit den folgenden Signaturen: Void ProcessRequest (HttpContext); Bool IsReusable {get;}

2
Santosh Wavare

Ein ASP.NET HTTP-Handler ist der Prozess (häufig als "Endpunkt" bezeichnet), der als Reaktion auf eine Anforderung ausgeführt wird, die an eine ASP.NET-Webanwendung gestellt wird. Der häufigste Handler ist ein ASP.NET-Seitenhandler, der ASPX-Dateien verarbeitet. Wenn Benutzer einen .aspx file anfordern, wird die Anforderung von der Seite über den Seitenhandler verarbeitet.

Der ASP.NET-Seitenhandler ist nur ein Handler-Typ. ASP.NET enthält mehrere andere integrierte Handler, z. B. den Webdienst-Handler für .asmx files.

Sie können benutzerdefinierte HTTP-Handler erstellen, wenn Sie eine spezielle Behandlung wünschen, die Sie mithilfe von Dateinamenerweiterungen in Ihrer Anwendung identifizieren können. In den folgenden Szenarien werden beispielsweise benutzerdefinierte HTTP-Handler verwendet:

RSS-Feeds Um einen RSS-Feed für eine Site zu erstellen, können Sie einen Handler erstellen, der RSS-formatiertes XML ausstrahlt. Sie können dann die Erweiterung .rss (zum Beispiel) in Ihrer Anwendung an den benutzerdefinierten Handler binden. Wenn Benutzer eine Anforderung an Ihre Site senden, die auf .rss endet, ruft ASP.NET Ihren Handler auf, um die Anforderung zu verarbeiten.

Image Server Wenn Ihre Webanwendung Bilder in verschiedenen Größen bereitstellen soll, können Sie einen benutzerdefinierten Handler schreiben, um die Größe der Bilder zu ändern, und diese dann als Antwort des Handlers an den Benutzer zurücksenden.

HTTP-Handler haben Zugriff auf den Anwendungskontext, einschließlich der Identität des anfordernden Benutzers (falls bekannt), des Anwendungsstatus und der Sitzungsinformationen. Wenn ein HTTP-Handler angefordert wird, ruft ASP.NET die Methode ProcessRequest für den entsprechenden Handler auf. Die ProcessRequest-Methode des Handlers erstellt eine Antwort, die an den anfordernden Browser zurückgesendet wird. Wie bei jeder Seitenanforderung durchläuft die Antwort alle HTTP-Module, die Ereignisse abonniert haben, die nach der Ausführung des Handlers auftreten.

Jede Klasse, die System.Web.IHttpHandler Interface implementiert, wird zu HttpHandler. Diese Klasse wird als Prozess ausgeführt, als Antwort auf eine Anforderung an die ASP.NET-Site.

Der häufigste Handler ist ein ASP.NET-Seitenhandler, der ASPX-Dateien verarbeitet. Wenn Benutzer eine ASPX-Datei anfordern, wird die Anforderung von der Seite über den Seitenhandler (die Klasse, die System.Web.IHttpHandler-Schnittstelle implementiert) verarbeitet.

Sie können Ihre eigenen benutzerdefinierten HTTP-Handler erstellen, die benutzerdefinierte Ausgaben für den Browser darstellen.

Einige ASP.NET-Standardhandler sind: 

  1. Seitenhandler (ASPX) - Behandelt Webseiten
  2. User Control Handler (.ascx) - Steuert Seiten für Web-Benutzersteuerelemente
  3. Web Service Handler (.asmx) - Behandelt Web-Service-Seiten
  4. Trace-Handler (trace.axd) - Verarbeitet die Trace-Funktionalität
0
Rajeev Singh

Ein ASP.NET-HTTP-Handler ist der Prozess (häufig als "Endpunkt" bezeichnet), der als Reaktion auf eine Anforderung an eine ASP.NET-Webanwendung ausgeführt wird. Der häufigste Handler ist ein ASP.NET-Seitenhandler, der ASPX-Dateien verarbeitet. Wenn Benutzer eine ASPX-Datei anfordern, wird die Anforderung von der Seite über den Seitenhandler verarbeitet. Sie können Ihre eigenen HTTP-Handler erstellen, die benutzerdefinierte Ausgaben für den Browser darstellen.

0
Budhimanta