diferença .aspx vs .ashx MAIN

115

Quais são as diferenças entre as páginas .aspx e .ashx? Eu uso ashx agora quando preciso lidar com uma solicitação que foi chamada do código e retornou com uma resposta, mas gostaria de uma resposta mais técnica, por favor.

Arrabi
fonte

Respostas:

101

Page é um tratador de caso especial.

O manipulador genérico da Web ( *.ashxprocessador baseado em extensão) é o manipulador HTTP padrão para todos os manipuladores da Web que não possuem uma IU e que incluem a @WebHandlerdiretiva.

ASP.NET page handler ( *.aspx) é o manipulador HTTP padrão para todas as páginas ASP.NET.

Entre os manipuladores HTTP integrados, há também manipulador de serviço da Web ( *.asmx) e manipulador de rastreamento ( trace.axd)

MSDN diz :

Um manipulador HTTP ASP.NET é o processo (freqüentemente referido como o "ponto de extremidade") que é executado em resposta a uma solicitação feita a um aplicativo Web ASP.NET. O manipulador mais comum é um manipulador de página ASP.NET que processa arquivos .aspx. Quando os usuários solicitam um arquivo .aspx, a solicitação é processada pela página por meio do manipulador de páginas.

A imagem abaixo ilustra isso: solicitar tubulação

Quanto à sua segunda pergunta:

O ashx lida com mais conexões do que o aspx?

Não pense assim (mas com certeza, pelo menos não menos que).

Alex
fonte
obrigado, mas você não mencionou o manipulador ashx, e o Request Pipe Line?
Arrabi,
1
@Arrabi, HttpHandleré apenas uma seção da solicitação que está sendo executada antes da Pageseção.
Alex
82

.aspxusa um ciclo de vida completo ( Init, Load, PreRender) e pode responder a cliques de botão etc.
Um .ashxtem apenas um único ProcessRequestmétodo.

Hans Ke st ing
fonte
O que significa 'reutilizável' neste contexto?
redcalx de
11
Que o servidor web não é obrigado a criar uma nova instância de objeto a cada nova solicitação. Se IsReusable = true no manipulador, o servidor pode reutilizar objetos manipuladores existentes para processar as próximas solicitações
quetzalcoatl
2
Portanto, ele cria uma instância de handler e mantém na memória para reutilizá-lo. Nunca devolva para GC.
uzay95 de
26

.aspx é uma página renderizada. Se você precisar de uma visualização, use uma página .aspx. Se tudo o que você precisa é a funcionalidade de back-end, mas permanecerá na mesma visualização, use uma página .ashx.

Babak Naffas
fonte
que eu sei, eu queria uma resposta mais técnica talvez com números, ashx lida com mais conexão do que aspx?
Arrabi,
1

Para pessoas que já programaram em nodeJs antes, particularmente usando expressJS. Eu penso .ashxem um middleware que chama a nextfunção. Enquanto .aspxserá o controlador que realmente responderá à solicitação, seja ao redor res.redirect, res.sendseja o que for.

instantâneo
fonte