我制作了一个网络应用,我使用的模块在没有“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时需要担心的任何差异?
请解释一下!
答案 0 :(得分:4)
Global.asax继承自HTTPApplication,HTTPModules必须实现IHTTPInterface。
HTTPModules Init方法获取传入的HTTPApplication对象
在Init方法中,您可以挂钩HTTPApplication的事件。
我建议尽可能使用HTTPModules 特别是如果你制作了收缩包装的软件,客户可以用自己的软件替换你的global.asax。
答案 1 :(得分:2)
几乎没有区别。 HTTPModules的目的是为了清晰和分离。通常人们会通过几个HTTPModule来处理请求,这是global.asax无法获得的。