asp.net global.asax Application_BeginRequest

时间:2010-11-04 14:39:17

标签: c# asp.net global-asax

我有一个网站,其中有多个域指向它。我想将所有请求重定向到主域,因此我创建了一个名为RedirectToRealDomain(“domain.com”)的方法来检查并将所有请求重定向到我的首选域

目前它存在于Session_Start,但我正计划将其移至Application_BeginRequest事件。

这是个好主意吗?据我所知,Session_Start仅在新会话启动时引发,但Application_BeginRequest在所有请求上引发。除了比较字符串之外,RedirectToRealDomain方法不进行任何数据库查找或任何昂贵的工作。

2 个答案:

答案 0 :(得分:1)

是的,那会有效。我使用HTTP模块的“BeginRequest”事件在我的网站上做同样的事情。

另一种选择是创建第二个IIS站点并将所有其他域指向此站点。然后,您可以使用IIS管理控制台将所有请求重定向到第一个站点。

答案 1 :(得分:0)

这应该没问题,但是在IIS中还有其他非编程方式可以做到这一点,我认为这样可以减少开销,并且可能采用更“正确”的方式。您对事件发生时间的理解是正确的,但您的解决方案应该有效,而不是过多的服务器耗尽。

请参阅此处了解如何在IIS中执行此操作:

http://www.getfoundnow.com/iis_301_redirect.htm