0

我在玩 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 使用传统管道处理事情?我想要的只是在 HttpApplication.Init 中设置的事件处理程序和异步方法中执行 Response.Writes

编辑:我的问题是 obv。有点不清楚(对浪费时间的人感到抱歉)-我应该更好地解释,因为我想做的事情非常不合常规。我正在尝试查看是否可以使用 IIS 以类似于 node.js 的方式处理 Web 请求 - 通过将处理程序连接到 HttpApplication 中的异步方法。为此,我需要 ASP 停止摇晃,因为我不想使用 HttpHandlers。目前我最好的选择是对所有请求使用 NullHttpHandler,但我想知道是否可以完全禁用 HttpHandler 系统。你的想法!

4

3 回答 3

0

您必须重新添加 StaticFileHandler:

  <httpHandlers>
    <clear />
    <add verb="*" path="*.jpg" type="System.Web.StaticFileHandler" />
  </httpHandlers>
于 2010-04-01T11:18:15.867 回答
0

你需要 IIS。请求在 IIS 管道中开始,对于 ASP .NET 来处理它,IIS 需要能够找到一个 http 处理程序,它可以将请求传递给。只有在找到合适的处理程序后,它才会将请求传递给 ASP .NET。

于 2010-04-01T11:19:14.917 回答
0

我知道它有点旧......但如果你在你的 ie 中。为您分配处理程序的BeginRequest事件不应出现此错误,并且可以将 web.config 中的处理程序部分留空。HttpApplicationHttpContext.Current.Handler

于 2011-01-15T17:18:50.267 回答