Différence PRINCIPALE .aspx vs .ashx

115

Quelles sont les différences entre les pages .aspx et .ashx? J'utilise ashx maintenant lorsque j'ai besoin de traiter une demande qui a été appelée à partir du code et renvoyée avec une réponse, mais je voudrais une réponse plus technique s'il vous plaît.

Arrabi
la source

Réponses:

101

Page est un gestionnaire de cas spécial.

Le gestionnaire Web générique ( *.ashxprocesseur basé sur une extension) est le gestionnaire HTTP par défaut pour tous les gestionnaires Web qui n'ont pas d'interface utilisateur et qui incluent la @WebHandlerdirective.

Gestionnaire page ASP.NET ( *.aspx) est le gestionnaire HTTP par défaut pour toutes les pages ASP.NET.

Parmi les gestionnaires HTTP intégrés, il existe également un gestionnaire de service Web ( *.asmx) et un gestionnaire de trace ( trace.axd)

MSDN dit :

Un gestionnaire HTTP ASP.NET est le processus (souvent appelé «point de terminaison») qui s'exécute en réponse à une demande adressée à une application Web ASP.NET. Le gestionnaire le plus courant est un gestionnaire de page ASP.NET qui traite les fichiers .aspx. Lorsque les utilisateurs demandent un fichier .aspx, la demande est traitée par la page via le gestionnaire de pages.

L'image ci-dessous illustre ceci: demande de canalisation

Quant à votre deuxième question:

Ashx gère-t-il plus de connexions que aspx?

Ne le pense pas (mais bien sûr, au moins pas moins que).

Alex
la source
merci, mais vous n'avez pas mentionné le gestionnaire ashx, qu'en est-il de sa Request Pipe Line?
Arrabi
1
@Arrabi, HttpHandlerest juste une section de la requête qui est exécutée avant la Pagesection.
Alex
82

.aspxutilise un cycle de vie complet ( Init, Load, PreRender) et peut répondre aux clics de bouton , etc.
Un .ashxa une seule ProcessRequestméthode.

Hans Ke st ing
la source
Qu'entend-on par «réutilisable» dans ce contexte?
redcalx
11
Que le serveur Web n'est pas obligé de créer une nouvelle instance d'objet par nouvelle demande. Si IsReusable = true sur le gestionnaire, alors le serveur peut réutiliser les objets de gestionnaire existants pour traiter les demandes suivantes
quetzalcoatl
2
Il crée donc une instance de handler et reste en mémoire pour le réutiliser. Il ne le rend jamais à GC.
uzay95
26

.aspx est une page rendue. Si vous avez besoin d'une vue, utilisez une page .aspx. Si tout ce dont vous avez besoin est une fonctionnalité de backend mais que vous restez sur la même vue, utilisez une page .ashx.

Babak Naffas
la source
que je sais, je voulais une réponse plus technique peut-être avec des chiffres, ashx gère-t-il plus de connexion que aspx?
Arrabi
1

Pour les personnes qui ont déjà programmé dans nodeJs, en particulier en utilisant expressJS. Je pense .ashxà un middleware qui appelle la nextfonction. Alors que .aspxsera le contrôleur qui répondra réellement à la demande, soit autour res.redirect, res.sendsoit quoi que ce soit.

éclat
la source