.aspx vs .ashx MAIN różnica


115

Jakie są różnice między stronami .aspx i .ashx? Używam Ashx teraz, gdy muszę obsłużyć żądanie, które zostało wywołane z kodu i zwrócone z odpowiedzią, ale chciałbym uzyskać bardziej techniczną odpowiedź.

Odpowiedzi:


101

Page jest specjalną obsługą przypadku.

Ogólny program obsługi sieci Web ( *.ashxprocesor oparty na rozszerzeniu) jest domyślnym programem obsługi HTTP dla wszystkich programów obsługi sieci Web, które nie mają interfejsu użytkownika i które zawierają @WebHandlerdyrektywę.

Program obsługi stron ASP.NET ( *.aspx) to domyślny program obsługi HTTP dla wszystkich stron ASP.NET.

Wśród wbudowanych programów obsługi HTTP znajdują się również funkcje obsługi usług internetowych ( *.asmx) i obsługi śledzenia ( trace.axd)

MSDN mówi :

Procedura obsługi ASP.NET HTTP to proces (często nazywany „punktem końcowym”), który jest uruchamiany w odpowiedzi na żądanie skierowane do aplikacji sieci Web ASP.NET. Najpopularniejszym programem obsługi jest program obsługi stron ASP.NET, który przetwarza pliki .aspx. Gdy użytkownicy żądają pliku aspx, żądanie jest przetwarzane przez stronę za pośrednictwem programu obsługi strony.

Poniższy obraz ilustruje to: zażądać rurociągu

A jeśli chodzi o drugie pytanie:

Czy ashx obsługuje więcej połączeń niż aspx?

Nie myśl tak (ale na pewno nie mniej niż).


dziękuję, ale nie wspomniałeś o programie obsługującym ashx, a co z jego linią Request Pipe?
Arrabi

1
@Arrabi, HttpHandlerto tylko sekcja żądania, która jest wykonywana przed Pagesekcją.
Alex

82

.aspxwykorzystuje pełen cykl ( Init, Load, PreRender) i może reagować na kliknięcia przycisków itp ma tylko jedną metodę.
.ashxProcessRequest


Co w tym kontekście oznacza „wielokrotnego użytku”?
redcalx

11
Że serwer WWW nie jest zobowiązany do tworzenia nowej instancji obiektu na każde nowe żądanie. Jeśli IsReusable = true w programie obsługi, serwer może ponownie wykorzystać istniejące obiekty modułu obsługi do przetwarzania kolejnych żądań
quetzalcoatl

2
Tworzy więc instancję obsługi i przechowuje w pamięci, aby ponownie go użyć. Nigdy nie zwróci go GC.
uzay95

26

.aspx to renderowana strona. Jeśli potrzebujesz widoku, użyj strony .aspx. Jeśli potrzebujesz tylko funkcji zaplecza, ale pozostaniesz w tym samym widoku, użyj strony .ashx.


że wiem, potrzebowałem bardziej technicznej odpowiedzi, może z liczbami, czy ashx obsługuje więcej połączeń niż aspx?
Arrabi,

1

Dla ludzi, którzy wcześniej programowali w nodeJs, szczególnie używając expressJS. Myślę .ashxjako warstwy pośredniej , która wywołuje nextfunkcję. Podczas gdy .aspxbędzie kontrolerem, który faktycznie odpowie na żądanie albo w pobliżu res.redirect, res.sendalbo cokolwiek.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.