Как я могу остановить IIS7 от использования HttpHandlers?

Я немного поиграюсь с 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.

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

3 ответа

Решение

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

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

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

  <httpHandlers>
    <clear />
    <add verb="*" path="*.jpg" type="System.Web.StaticFileHandler" />
  </httpHandlers>
Другие вопросы по тегам