Вызов HttpHandler asp.net по умолчанию из пользовательского обработчика

Я добавляю маршрутизацию ASP.NET в старое приложение веб-форм. Я использую пользовательский HttpHandlerдля обработки всего. В некоторых ситуациях я хотел бы сопоставить определенный путь обратно с файлом aspx, поэтому мне нужно просто передать управление обратно HttpHandler по умолчанию для asp.net.

Самое близкое, что я получил, это

public void ProcessRequest(HttpContext context) {
    // .. when we decide to pass it on

    var handler = new System.Web.UI.Page();
    handler.ProcessRequest(context);

    MemoryStream steam = new MemoryStream();
    StreamWriter writer = new StreamWriter(stream);
    HtmlTextWriter htmlWriter = new HtmlTextWriter(writer);
    handler.RenderControl(htmlWriter);


    // write headers, etc. & send stream to Response
}

Это ничего не делает, ничего не выводится в поток. Документация MS для System.Web.UI.Page (как IHttpHandler) говорит что-то вроде «не вызывайте метод ProcessRequest. Он предназначен для внутреннего использования».

Оглядываясь вокруг, кажется, что вы можете сделать это с помощью MVC, например. : MvcHttpHandler, похоже, не реализует IHttpHandler

Есть еще такая вещь System.Web.UI.PageHandlerFactory, который, по-видимому, просто создает обработчик страницы для файла aspx, но он является внутренним, и я не могу использовать его напрямую.

Эта страница: http://msdn.microsoft.com/en-us/library/bb398986.aspxотносится к «обработчику asp.net по умолчанию», но не определяет класс и не дает никаких указание на то, как его можно использовать.

Есть идеи, как это сделать? Это возможно?

11
задан Community 23 May 2017 в 12:19
поделиться