.aspx vs .ashx ГЛАВНАЯ разница

В чем разница между страницами .aspx и .ashx? Я использую ashx сейчас, когда мне нужно обработать запрос, который был вызван из кода и возвращен с ответом, но я хотел бы получить более технический ответ, пожалуйста.


person Arrabi    schedule 29.03.2011    source источник


Ответы (4)


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?

Не думаю (но точно, по крайней мере, не меньше).

person Alex    schedule 29.03.2011
comment
спасибо, но вы не упомянули обработчик ashx, как насчет его Request Pipe Line? - person Arrabi; 29.03.2011
comment
@Arrabi, HttpHandler - это просто раздел запроса, который выполняется перед разделом Page. - person Alex; 29.03.2011

.aspx использует полный жизненный цикл (Init, Load, PreRender) и может реагировать на нажатия кнопок и т. Д.
.ashx имеет только один ProcessRequest метод.

person Hans Kesting    schedule 29.03.2011
comment
Что в этом контексте подразумевается под «многоразовым»? - person redcalx; 06.02.2013
comment
Веб-сервер не обязан создавать новый экземпляр объекта для каждого нового запроса. Если IsReusable = true для обработчика, то сервер может повторно использовать существующие объекты обработчика для обработки следующих запросов. - person quetzalcoatl; 14.02.2013
comment
Таким образом, он создает экземпляр обработчика и сохраняет в памяти для его повторного использования. Он никогда не возвращает его GC. - person uzay95; 24.01.2017

.aspx - это отображаемая страница. Если вам нужно представление, используйте страницу .aspx. Если все, что вам нужно, это функциональность серверной части, но при этом будет оставаться то же представление, используйте страницу .ashx.

person Babak Naffas    schedule 29.03.2011
comment
что я знаю, я хотел получить более технический ответ, возможно, с цифрами, обрабатывает ли ashx больше соединений, чем aspx? - person Arrabi; 29.03.2011

Для людей, которые раньше программировали на nodeJs, особенно с использованием expressJS. Я думаю о .ashx как о промежуточном программном обеспечении, которое вызывает функцию next. В то время как .aspx будет контроллером, который на самом деле отвечает на запрос либо около res.redirect, res.send, или где-то еще.

person flash    schedule 17.08.2019