.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.

Arrabi
quelle

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).

Alex
quelle
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.

Hans Keing
quelle
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.

Babak Naffas
quelle
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.

Blitz
quelle