Какой-либо способ добавить HttpHandler программно в.NET?

На MacOSX у Вас есть, по крайней мере, следующие опции:

  • Повторяющееся предупреждение iCal с "Выполненным Сценарием" действие
  • крон launchd
  • ( link1, link2)

От личного опыта, крон является самым надежным. Когда я протестировал, launchd имел много ошибок и причуд. iCal предупреждает только выполненный, когда Вы зарегистрированы (но это могло бы быть чем-то, что Вы предпочитаете).

21
задан Cœur 15 April 2017 в 19:09
поделиться

1 ответ

Добавляя HttpHandler, я предполагаю, вы имеете в виду файлы конфигурации

<system.web>
    <httpHandlers>...</httpHandler>
</system.web>

Есть способ управлять им автоматически , добавив IHttpHandler непосредственно во время запроса. Итак, в PostMapRequestHandler в жизненном цикле приложения вы должны сделать следующее в своем собственном IHttpModule :

private void context_PostMapRequestHandler(object sender, EventArgs e)
{
    HttpContext context = ((HttpApplication)sender).Context;
    IHttpHandler myHandler = new MyHandler();
    context.Handler = myHandler;
}

И это автоматически установит обработчик для этого запроса. Очевидно, вы, вероятно, захотите обернуть это некоторой логикой, чтобы проверить такие вещи, как глагол, запрашиваемый URL-адрес и т. Д. Но вот как это будет сделано. Также вот так работают многие популярные URL Rewriter, например:

http://urlrewriter.codeplex.com

К сожалению, с помощью предварительно созданного обработчика конфигурации , который делает файл web.confi g, он скрыт и не кажется доступным. Он основан на интерфейсе под названием IHttpHandlerFactory .

Обновление IHttpHandlerFactory можно использовать так же, как и любой другой IHttpHandler, только он используется как точка запуска вместо точка обработки. См. Эту статью.

http://www.uberasp.net/getarticle.aspx?id=49

18
ответ дан 29 November 2019 в 21:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: