Как я могу остановить IIS7 от использования HttpHandlers? - PullRequest
0 голосов
/ 01 апреля 2010

Я немного поиграюсь с IIS7, просто пытаюсь перехватывать события вручную в global.asax и полностью пропустить конвейер ASP httphandler.Для этого я установил

<httpHandlers>
    <clear/>
</httpHandlers>
<httpModules>
    <clear/>
</httpModules>   

, но когда я вызываю сервер, я получаю YSOD

[HttpException]: No http handler was found for request type 'GET'
   at System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig)
   at System.Web.HttpApplication.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

Что мне нужно сделать, чтобы полностью запретить IIS обрабатывать вещи, используяобычный трубопровод?То, что я хочу, это просто сделать Response.Writes в обработчиках событий и асинхронных методах, настроенных в HttpApplication.Init

edit: мой вопрос был obv.немного неясно (извините всех, чье время было потрачено впустую) - я должен был объяснить лучше, поскольку то, что я пытаюсь сделать, довольно нетрадиционно.Я пытаюсь выяснить, могу ли я использовать IIS для обработки веб-запросов способом, аналогичным node.js, путем привязки обработчиков к асинхронным методам в HttpApplication.Для этого мне нужно, чтобы ASP прекратил шататься, потому что я не хочу использовать HttpHandlers.В настоящее время лучше всего использовать NullHttpHandler для всех запросов, но мне интересно, могу ли я полностью отключить систему HttpHandler.Ваши идеи!

Ответы [ 3 ]

0 голосов
/ 01 апреля 2010

Вам нужен IIS. Запрос запускается в конвейере IIS, и для того, чтобы ASP .NET его обработал, IIS должен быть в состоянии найти обработчик http, который может передать запрос. Он передает запрос в ASP .NET только после того, как нашел подходящий обработчик.

0 голосов
/ 15 января 2011

Я знаю, это немного старовато ... но если вы в вашем то есть. BeginRequest событие HttpApplication назначить обработчик на HttpContext.Current.Handler, вы не должны получать эту ошибку и можете оставить раздел handlers в web.config пустым.

0 голосов
/ 01 апреля 2010

Вы должны повторно добавить StaticFileHandler:

  <httpHandlers>
    <clear />
    <add verb="*" path="*.jpg" type="System.Web.StaticFileHandler" />
  </httpHandlers>
...