【问题标题】:How does IIS7 decide when to invoke…?IIS7 如何决定何时调用……?
【发布时间】:2009-05-13 19:12:15
【问题描述】:


Q1) 假设 Http 模块注册到 IIS7 以用于非 Asp.Net 应用程序(比如一些 Java 应用程序),那么 IIS7 在请求的生命周期中什么时候会调用这个模块?因此,IIS7 将如何决定何时调用它?


Q2) 为了向 IIS7 注册 Http 模块,我们需要将其放入 GAC。 是否可以在不放入 GAC 的情况下注册 Http 模块或 Http 处理程序?


感谢

【问题讨论】:

    标签: asp.net iis iis-7 httpmodule


    【解决方案1】:

    A1。假设您使用的是集成管道,.Net 和非.Net 请求的请求生命周期是相同的。 IIS7 的“失败的请求跟踪规则”功能将为您提供有关在请求生命周期内触发的事件的大量详细信息。我已经用它来调试 HttpModules,它有很大帮助。

    A2。是的,您不需要在 GAC 中放置 HttpModule 来注册它。只要它在您应用的“bin”文件夹中,IIS7 就能找到它。

    【讨论】:

    • 所以本质上 IIS 7 有它自己的事件,可以向哪些 Http 模块注册?但是我们如何将自定义 Http 模块注册到特定的 IIS 7 事件?
    • IIS7 的集成管道您熟悉和喜爱的 ASP.NET 管道。他们已经合并了。它们不是单独的事件——它们是相同的事件。
    • 现在我很困惑。 A) 如果两条管道按照您所说的方式合并,那么谁来实际触发事件……IIS7 还是 Asp.Net? B)另外,如果两者合并,那么只有事件(由该管道触发)是 HttpApplication 事件( BeginRequest、AuthenticateRequest、AuthorizeRequest )还是该管道也有“它自己的、与 Asp.Net 无关的”事件? C) 那么 IIS7 的本机模块(因此非 Asp.Net 模块)也订阅/注册到 HttpApplication 事件(BeginRequest、AuthenticateRequest 等)?
    • A. IIS7; B. 我找不到任何提及非 Asp.net 事件的内容; C. 是的
    猜你喜欢
    • 2013-03-03
    • 1970-01-01
    • 2011-07-01
    • 2012-08-31
    • 1970-01-01
    • 2018-03-01
    相关资源
    最近更新 更多