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