В чем разница между страницами .aspx и .ashx? Я использую ashx сейчас, когда мне нужно обработать запрос, который был вызван из кода и возвращен с ответом, но я хотел бы получить более технический ответ, пожалуйста.
Page
- это специальный обработчик случаев.
Универсальный веб-обработчик ( *.ashx
процессор на основе расширений) - это HTTP-обработчик по умолчанию для всех веб-обработчиков, не имеющих пользовательского интерфейса и включающих @WebHandler
директиву.
Обработчик страницы ASP.NET ( *.aspx
) является обработчиком HTTP по умолчанию для всех страниц ASP.NET.
Среди встроенных обработчиков HTTP есть также обработчик веб-службы ( *.asmx
) и обработчик трассировки ( trace.axd
).
MSDN говорит :
Обработчик HTTP ASP.NET - это процесс (часто называемый «конечной точкой»), который выполняется в ответ на запрос, сделанный к веб-приложению ASP.NET. Наиболее распространенный обработчик - обработчик страницы ASP.NET, обрабатывающий файлы .aspx. Когда пользователи запрашивают файл .aspx, запрос обрабатывается страницей через обработчик страницы.
Изображение ниже иллюстрирует это:
Что касается вашего второго вопроса:
Обрабатывает ли ashx больше соединений, чем aspx?
Не думаю (но точно, по крайней мере, не меньше).
HttpHandler
это просто раздел запроса, который выполняется передPage
разделом..aspx
использует полный жизненный цикл (Init
,Load
,PreRender
) и может реагировать на нажатия кнопок и т.д. имеют только один метод..ashx
ProcessRequest
источник
.aspx - это отображаемая страница. Если вам нужно представление, используйте страницу .aspx. Если все, что вам нужно, это функциональность серверной части, но при этом будет оставаться то же представление, используйте страницу .ashx.
источник
Для людей, которые раньше программировали на nodeJs, особенно с использованием expressJS. Я думаю ,
.ashx
как промежуточный слой , который вызываетnext
функцию. В то время как.aspx
будет контроллер, который фактически отвечает на запрос либо вокругres.redirect
,res.send
либо что-то еще.источник