如题。利用IHttpModule实现一个HttpModule中写的一些事件与直接写在Global.asax中直接写这些事件是一个效果吗?

解决方案 »

  1.   

    http://www.cnblogs.com/goody9807/archive/2006/12/25/603051.html
      

  2.   

    那意思是说IHttpModule能实现的,使用Global.asax也一样能实现!?
      

  3.   

    差不多。我一般用HttpModule的。
      

  4.   

    Global.asax还不用注册,为什么不用它呢??
      

  5.   

    如果要处理的事件的逻辑很多,都写到一个Global.asax中不太方便。只要是维护不方便
      

  6.   

    是吗?那看来我得习惯用IHttpModule了
      

  7.   

    IHttpModule可配置性好,dll一拷,webconfig一加,哪里都能用.
      

  8.   

    引自msdn:HTTP 模块与 Global.asax 文件
    可以在应用程序的 Global.asax 文件中实现模块的许多功能,这使您可以响应应用程序事件。但是,模块相对于 Global.asax 文件具有如下优点:模块可以进行封装,因此可以在创建一次后在许多不同的应用程序中使用。通过将它们添加到全局程序集缓存 (GAC) 并将它们注册到 Machine.config 文件中,可以跨应用程序重新使用它们。有关更多信息,请参见全局程序集缓存。但是,使用 Global.asax 文件有一个好处,那就是您可以将代码放在其他已注册的模块事件(如 Session_Start 和 Session_End 方法)中。此外,Global.asax 文件还允许您实例化可在整个应用程序中使用的全局对象。当您需要创建依赖应用程序事件的代码并且希望在其他应用程序中重用模块时,或者不希望将复杂代码放在 Global.asax 文件中时,应当使用模块。当您需要创建依赖应用程序事件的代码但不需要跨应用程序重用它时,或者需要订阅不可用于模块的事件(如 Session_Start)时,应当将代码放在 Global.asax 文件中。