ASP.NET — как aspnet_isapi.dll создает класс страницы

Все мы знаем, что когда получен запрос на abc.aspx, aspnet_isapi.dll обрабатывает его и вызывает метод processrequest страницы. Мой вопрос в том, как он создает экземпляр класса страницы и как он вызывает жизненный цикл страницы. Какой шаблон он реализует?

Ну, все мы знаем, что среда выполнения ASP.NET вызывает ProcessRequest обработчика, чтобы запустить процесс. Мой вопрос в том, как это делается. На основе имени страницы (abc.aspx) он создает этот класс abc и вызывает некоторые методы этого класса. Теперь, как он создает объект abc, это мой вопрос.


person Ankit    schedule 12.09.2012    source источник


Ответы (4)


Вот этапы, которые происходят между получением запроса и отправкой ответа.

введите здесь описание изображения

Это жизненный цикл приложения.

Этап обработчика выполнения, на котором обработчик (модуль с областью действия URL-адреса) вызывается для создания ответа. Для файлов .aspx обработчик PageHandlerFactory используется для ответа на запрос. Для статических файлов модуль StaticFileModule с собственным кодом отвечает на запрос.

Это делается с помощью PageHandlerFactory.

PageHandlerFactory создает экземпляры классов, которые наследуются от класса Page и реализуют интерфейс IHttpHandler. Экземпляры создаются динамически для обработки запросов на файлы ASP.NET. Класс PageHandlerFactory — это реализация фабрики обработчиков по умолчанию для страниц ASP.NET.

Класс PageHandlerFactory реализует интерфейс IHttpHandlerFactory для предоставления обработчика HTTP по умолчанию для файлов ASP.NET. PageHandlerFactory вызывает систему компиляции ASP.NET для компиляции, если это необходимо, и возвращает точный тип, соответствующий URL-адресу, а затем создает экземпляр этого типа. Тип страницы наследуется от класса Page и реализует интерфейс IHttpHandler.

person nunespascal    schedule 12.09.2012
comment
Это может помочь, я думаю. c- Sharpcorner.com/Interviews/answer/1833/ - person V.J.; 25.06.2015

Я думаю, это то, что вы ищете..

http://www.west-wind.com/presentations/howaspnetworks/howaspnetworks.asp

person Murali Murugesan    schedule 12.09.2012

Такие вещи хорошо документированы:

http://msdn.microsoft.com/en-us/library/ms178472(v=vs.100).aspx

person Justin Harvey    schedule 12.09.2012
comment
Вопрос не в том, что такое жизненный цикл страницы. Как туда попадает aspnet_isapi.dll? Как называется первый метод - person Ankit; 12.09.2012

Вы можете попробовать использовать этот код на основе HttpContext.Response.Redirect

public void ProcessRequest(HttpContext context)
{
        context.Response.Write("<H1>This is an HttpHandler Test.</H1>");      
        context.Response.Redirect("YourPage.aspx");
}
person Aghilas Yakoub    schedule 12.09.2012