¿Cuáles son las diferencias entre las páginas .aspx y .ashx? Ahora uso ashx cuando necesito manejar una solicitud que se llamó desde el código y se devolvió con una respuesta, pero me gustaría una respuesta más técnica, por favor.
Page
es un manejador de casos especiales.
El manejador web genérico ( *.ashx
procesador basado en extensiones) es el manejador HTTP predeterminado para todos los manejadores web que no tienen una IU y que incluyen la @WebHandler
directiva.
El controlador de páginas ASP.NET ( *.aspx
) es el controlador HTTP predeterminado para todas las páginas ASP.NET.
Entre los controladores HTTP integrados también hay un controlador de servicios web ( *.asmx
) y un controlador de seguimiento ( trace.axd
)
MSDN dice :
Un controlador HTTP de ASP.NET es el proceso (con frecuencia denominado "punto final") que se ejecuta en respuesta a una solicitud realizada a una aplicación web ASP.NET. El controlador más común es un controlador de página ASP.NET que procesa archivos .aspx. Cuando los usuarios solicitan un archivo .aspx, la página procesa la solicitud a través del controlador de página.
La siguiente imagen ilustra esto:
En cuanto a su segunda pregunta:
¿Ashx maneja más conexiones que aspx?
No lo creo (pero seguro, al menos no menos).
HttpHandler
es solo una sección de la solicitud que se está ejecutando antes de laPage
sección..aspx
utiliza un ciclo de vida completo (Init
,Load
,PreRender
) y puede responder a clics de los botones, etc.Una
.ashx
tiene un soloProcessRequest
método.fuente
.aspx es una página renderizada. Si necesita una vista, use una página .aspx. Si todo lo que necesita es la funcionalidad de backend pero permanecerá en la misma vista, use una página .ashx.
fuente
Para las personas que han programado en nodeJs antes, particularmente usando expressJS. Pienso
.ashx
en un middleware que llama a lanext
función. Si bien.aspx
será el controlador que realmente responde a la solicitud ya sea alrededorres.redirect
,res.send
o lo que sea.fuente