Как я могу остановить 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>