.aspx vs .ashx Hauptunterschied


115

Was sind die Unterschiede zwischen ASPX- und ASX-Seiten? Ich verwende ashx jetzt, wenn ich eine Anfrage bearbeiten muss, die vom Code aufgerufen und mit einer Antwort zurückgegeben wurde, aber ich möchte bitte eine technischere Antwort.

Antworten:


101

Page ist ein Sonderfallbearbeiter.

Der generische Web-Handler ( *.ashx, erweiterungsbasierter Prozessor) ist der Standard-HTTP-Handler für alle Web-Handler, die keine Benutzeroberfläche haben und die @WebHandlerDirektive enthalten.

ASP.NET-Seitenhandler ( *.aspx) ist der Standard-HTTP-Handler für alle ASP.NET-Seiten.

Zu den integrierten HTTP-Handlern gehören auch der Webdienst-Handler ( *.asmx) und der Trace-Handler ( trace.axd)

MSDN sagt :

Ein ASP.NET-HTTP-Handler ist der Prozess (häufig als "Endpunkt" bezeichnet), der als Antwort auf eine Anforderung an eine ASP.NET-Webanwendung ausgeführt wird. Der am häufigsten verwendete 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.

Das Bild unten veranschaulicht dies: Rohrleitung anfordern

Zu Ihrer zweiten Frage:

Behandelt ashx mehr Verbindungen als aspx?

Denken Sie nicht so (aber sicher nicht weniger als).


Vielen Dank, aber Sie haben den Ashx-Handler nicht erwähnt. Was ist mit der Request Pipe Line?
Arrabi

1
@Arrabi HttpHandlerist nur ein Abschnitt der Anforderung, die vor dem PageAbschnitt ausgeführt wird.
Alex

82

.aspxverwendet einen gesamten Lebenszyklus ( Init, Load, PreRender) und auf Tastenklicks usw. reagieren kann
eine .ashxhat nur eine einzige ProcessRequestMethode.


Was ist in diesem Zusammenhang unter "wiederverwendbar" zu verstehen?
Redcalx

11
Dass der Webserver nicht verpflichtet ist, pro neuer Anforderung eine neue Objektinstanz zu erstellen. Wenn IsReusable auf dem Handler = true, dann kann der Server die Wiederverwendung bestehender Handler nächsten Anforderungen zu verarbeiten Objekte
quetzalcoatl

2
Es erstellt also eine Instanz des Handlers und bleibt im Speicher, um ihn wiederzuverwenden. Es gibt es niemals an GC zurück.
uzay95

26

.aspx ist eine gerenderte Seite. Wenn Sie eine Ansicht benötigen, verwenden Sie eine ASPX-Seite. Wenn Sie nur Backend-Funktionen benötigen, aber in derselben Ansicht bleiben, verwenden Sie eine .ashx-Seite.


dass ich weiß, ich wollte mehr technische Antwort vielleicht mit Zahlen, handhabt Ashx mehr Verbindung als Aspx?
Arrabi

1

Für Leute, die zuvor in NodeJs programmiert haben, insbesondere mit ExpressJS. Ich stelle mir .ashxeine Middleware vor , die die nextFunktion aufruft . Während .aspxwird die sein , Controller , die entweder auf die Anfrage reagiert tatsächlich um res.redirect, res.sendoder was auch immer.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.