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.

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


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.


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.


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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.