【问题标题】:How can I stop IIS7 from using HttpHandlers?如何阻止 IIS7 使用 HttpHandlers?
【发布时间】:2010-04-01 11:15:33
【问题描述】:

我在玩 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 系统。你的想法!

【问题讨论】:

    标签: iis-7 httphandler httphandlerfactory


    【解决方案1】:

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

    【讨论】:

    • 那么我应该创建一个 NullHttpHandler 并为所有请求类型注册它吗?
    【解决方案2】:

    你必须重新添加StaticFileHandler:

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

    【讨论】:

    • 或者将 *.jpg 替换为任何内容:在我的示例中,我处理来自数据库的图像,但希望 /images 中的所有图像直接来自目录...
    • 这不仅会使我的所有请求都得到静态处理吗?我想用代码来处理它们。
    • 是的;误解了你的问题。如果你想用代码处理它们,那么你需要添加相关的处理程序: 你得到一个错误,因为你已经删除了所有的处理程序,所以没有任何东西可以处理你的请求了......在 IIS 中,你映射了要由 asp.net 框架处理的文件类型,与 .aspx 相同, .ashx 等...根据 driis 响应。
    • (YSOD 表示该请求已由 .net 处理 - 如果不是,您将得到一个标准的 http 错误代码......所以 IIS 设置正确,对吧?)
    【解决方案3】:

    我知道它有点旧......但如果你在你的 ie 中。 BeginRequestHttpApplication 的事件将处理程序分配给HttpContext.Current.Handler,您应该不会收到此错误,并且可以将 web.config 中的处理程序部分留空。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-18
      • 1970-01-01
      • 2018-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多