Вопрос

Я немного поигрался с 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.Ваши идеи!

Это было полезно?

Решение

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

Другие советы

Вам необходимо повторно добавить StaticFileHandler:

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top