HttpModule和Global.aspx之间的性能差异是什么?

时间:2009-02-21 15:03:54

标签: c# web-applications asp.net-2.0 httpmodule global-asax

我制作了一个网络应用,我使用的模块在没有“www”网址(http://example.com/)的情况下重定向到“www”网址(http://www.example.com/)。但由于我在共享托管服务器上,我没有权限实现HttpModule,然后我尝试使用Global.asax文件相同的模块代码。那很有效!

我使用以下(Application_BeginRequest())事件来实现我的HttpModule功能。

void Application_BeginRequest()
{
  //module code
}

模块和应用程序在Global.asax文件中运行良好但是我很担心性能。

为什么我们在asp.net中使用HTTPModules如果我们可以使用Global.asax文件实现相同的功能。两者之间是否存在性能差异。或者在使用Global.asax文件而不是HttpModule时需要担心的任何差异?

请解释一下!

2 个答案:

答案 0 :(得分:4)

Global.asax继承自HTTPApplication,HTTPModules必须实现IHTTPInterface。
HTTPModules Init方法获取传入的HTTPApplication对象 在Init方法中,您可以挂钩HTTPApplication的事件。

我建议尽可能使用HTTPModules 特别是如果你制作了收缩包装的软件,客户可以用自己的软件替换你的global.asax。

答案 1 :(得分:2)

几乎没有区别。 HTTPModules的目的是为了清晰和分离。通常人们会通过几个HTTPModule来处理请求,这是global.asax无法获得的。