ASP.net IHttpHandler для выполнения файла .aspx

Как правильно заставить IHttpHandler иметь существующую страницу .aspx для обработки запроса? Я хотел бы иметь возможность скомпилировать файл .aspx в IHttpHandler и затем обработать запрос. Существует метод PageParser.GetCompiledPageInstance, однако в документации говорится, что он не предназначен для непосредственного использования из кода. Я знаю, что я могу автоматически направлять файлы apsx или выполнять RewritePath, однако мне бы хотелось иметь ссылку на объект для обработчика.

12.12.2008 22:06:31
1 ОТВЕТ
РЕШЕНИЕ

Вот один быстрый способ сделать это:

var virtualPath = "~/foo/bar.aspx"
var output = HttpContext.Current.Response.Output;

// Get the compiled page type (i.e. foo_bar_aspx)
Type controlType = BuildManager.GetCompiledType(virtualPath);

// "new()" it up
var pageInstance = Activator.CreateInstance(controlType);

// Execute it
HttpContext.Current.Server.Execute(pageInstance, output, true);
3
12.12.2008 22:18:07